import { MailModule } from '@hedhog/mail'; import { MailManagerModule } from '@hedhog/mail-manager'; import { PrismaModule } from '@hedhog/prisma'; import { HttpModule } from '@nestjs/axios'; import { forwardRef, Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { APP_GUARD } from '@nestjs/core'; import { JwtModule } from '@nestjs/jwt'; import { SettingModule } from '../setting/setting.module'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { AuthGuard } from './guards/auth.guard'; @Module({ imports: [ forwardRef(() => JwtModule.registerAsync({ global: true, useFactory: () => { return { secret: String(process.env.JWT_SECRET), global: true, signOptions: { expiresIn: process.env.JWT_EXPIRES_IN || '30d', }, }; }, }), ), forwardRef(() => PrismaModule), forwardRef(() => MailModule), forwardRef(() => SettingModule), forwardRef(() => MailManagerModule), ConfigModule, HttpModule, ], controllers: [AuthController], providers: [ AuthService, { provide: APP_GUARD, useClass: AuthGuard, }, ], exports: [AuthService], }) export class AuthModule {}