import { Module } from '@nestjs/common'; import { AuthController } from './auth.controller'; import { AuthService } from './providers/auth.service'; import { UsersModule } from '../users/users.module'; import { OtpModule } from '../otp/otp.module'; import { HashingModule } from '@/common/modules/hashing/hashing.module'; import { JwtModule } from '@nestjs/jwt'; import { ConfigService } from '@nestjs/config'; import { LoginProvider } from './providers/login.provider'; import { GenerateTokenProvider } from './providers/generate-token.provider'; import { VerifyOTPProvider } from './providers/verify-otp.provider'; @Module({ imports: [ UsersModule, OtpModule, HashingModule, JwtModule.registerAsync({ inject: [ConfigService], useFactory: (configService: ConfigService) => ({ secret: configService.get('jwt.access.secret'), signOptions: { expiresIn: configService.get('jwt.access.expiresIn'), issuer: configService.get('jwt.issuer'), audience: configService.get('jwt.audience'), }, }), }), ], controllers: [AuthController], providers: [ AuthService, GenerateTokenProvider, LoginProvider, VerifyOTPProvider, ], }) export class AuthModule {}