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 { JwtStrategy } from './strategies/jwt.strategy'; import { LocalStrategy } from './strategies/local.strategy'; import { RolesGuard } from './guards/roles.guard'; import { UsersModule } from '../users/users.module'; import { PrismaModule } from '../prisma/prisma.module'; @Module({ imports: [ UsersModule, PrismaModule, PassportModule, JwtModule.registerAsync({ inject: [ConfigService], useFactory: (config: ConfigService) => ({ secret: config.get('JWT_SECRET') || 'your-secret-key', signOptions: { expiresIn: '7d' }, }), }), ], controllers: [AuthController], providers: [AuthService, JwtStrategy, LocalStrategy, RolesGuard], exports: [AuthService, RolesGuard], }) export class AuthModule {}