import { Module } from '@nestjs/common'; import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; import { ConfigService } from '@nestjs/config'; import { WalletController, LedgerController, DepositController, HealthController, } from './controllers'; import { InternalWalletController } from './controllers/internal-wallet.controller'; import { WalletApplicationService } from '@/application/services'; import { DepositConfirmedHandler } from '@/application/event-handlers'; import { JwtStrategy } from '@/shared/strategies/jwt.strategy'; @Module({ imports: [ PassportModule.register({ defaultStrategy: 'jwt' }), JwtModule.registerAsync({ inject: [ConfigService], useFactory: (config: ConfigService) => ({ secret: config.get('JWT_SECRET') || 'default-secret', signOptions: { expiresIn: '7d' }, }), }), ], controllers: [ WalletController, LedgerController, DepositController, HealthController, InternalWalletController, ], providers: [ WalletApplicationService, DepositConfirmedHandler, JwtStrategy, ], }) export class ApiModule {}