import { Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AuditModule } from '../audit/audit.module'; import { UsersModule } from '../users/users.module'; import { Role } from '../users/entities/role.entity'; import { AuthController } from './auth.controller'; import { AuthGuard } from './auth.guard'; import { AuthService } from './auth.service'; @Module({ imports: [ AuditModule, UsersModule, TypeOrmModule.forFeature([Role]), JwtModule.registerAsync({ inject: [ConfigService], useFactory: (configService: ConfigService) => ({ secret: configService.getOrThrow('AUTH_SECRET'), signOptions: { expiresIn: '8h', }, }), }), ], controllers: [AuthController], providers: [AuthGuard, AuthService], exports: [AuthGuard, JwtModule, UsersModule], }) export class AuthModule {}