import { Module, forwardRef } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { AuthController } from './auth.controller'; import { AuthService } from './auth.service'; import { JwtStrategy } from './strategies/jwt.strategy'; import { UserProfile } from '../entities/user-profile.entity'; import { UserIdentity } from '../entities/user-identity.entity'; import { PaymentsModule } from '../payments/payments.module'; import { MetricsModule } from '../metrics/metrics.module'; import { SupabaseModule } from '../supabase/supabase.module'; @Module({ imports: [ TypeOrmModule.forFeature([UserProfile, UserIdentity]), PassportModule, JwtModule.registerAsync({ useFactory: () => ({ secret: process.env.JWT_ACCESS_SECRET || 'default-secret-change-in-production', signOptions: { expiresIn: process.env.JWT_ACCESS_EXPIRATION || '2h' }, }), }), forwardRef(() => PaymentsModule), MetricsModule, SupabaseModule, ], controllers: [AuthController], providers: [AuthService, JwtStrategy], exports: [AuthService], }) export class AuthModule {}