import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { ConfigService } from '@nestjs/config'; import { AuthService } from './auth.service'; import { AuthController } from './auth.controller'; import { AuthAdminController } from './auth-admin.controller'; import { UsersModule } from '../users/users.module'; import { MappingsModule } from '../mappings/mappings.module'; import { VendorsModule } from '../vendors/vendors.module'; import { JwtStrategy } from './strategies/jwt.strategy'; import { LocalStrategy } from './strategies/local.strategy'; import { TokenBlacklistService } from './services/token-blacklist.service'; @Module({ imports: [ PassportModule, JwtModule.registerAsync({ useFactory: (configService: ConfigService) => ({ secret: configService.get('JWT_SECRET'), signOptions: { expiresIn: configService.get('JWT_EXPIRES_IN', '7d') }, }), inject: [ConfigService], }), UsersModule, MappingsModule, VendorsModule, ], controllers: [AuthController, AuthAdminController], providers: [AuthService, JwtStrategy, LocalStrategy, TokenBlacklistService], exports: [AuthService], }) export class AuthModule {}