import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { ScheduleModule } from '@nestjs/schedule'; import { User } from './domain/entities/user.entity'; import { KycSubmission } from './domain/entities/kyc-submission.entity'; import { Wallet } from './domain/entities/wallet.entity'; import { Transaction } from './domain/entities/transaction.entity'; import { Message } from './domain/entities/message.entity'; import { AppVersion } from './domain/entities/app-version.entity'; import { TelemetryEvent } from './domain/entities/telemetry-event.entity'; import { OnlineSnapshot } from './domain/entities/online-snapshot.entity'; import { DailyActiveStats } from './domain/entities/daily-active-stats.entity'; import { UserRepository } from './infrastructure/persistence/user.repository'; import { KycRepository } from './infrastructure/persistence/kyc.repository'; import { WalletRepository } from './infrastructure/persistence/wallet.repository'; import { TransactionRepository } from './infrastructure/persistence/transaction.repository'; import { MessageRepository } from './infrastructure/persistence/message.repository'; import { PresenceRedisService } from './infrastructure/redis/presence-redis.service'; import { TelemetryMetricsService } from './infrastructure/metrics/telemetry-metrics.service'; import { TelemetryProducerService } from './infrastructure/kafka/telemetry-producer.service'; import { PackageParserService } from './infrastructure/parsers/package-parser.service'; import { UserProfileService } from './application/services/user-profile.service'; import { KycService } from './application/services/kyc.service'; import { WalletService } from './application/services/wallet.service'; import { MessageService } from './application/services/message.service'; import { AdminDashboardService } from './application/services/admin-dashboard.service'; import { AdminUserService } from './application/services/admin-user.service'; import { AdminSystemService } from './application/services/admin-system.service'; import { AdminAnalyticsService } from './application/services/admin-analytics.service'; import { TelemetryService } from './application/services/telemetry.service'; import { TelemetrySchedulerService } from './application/services/telemetry-scheduler.service'; import { AppVersionService } from './application/services/app-version.service'; import { FileStorageService } from './application/services/file-storage.service'; import { UserController } from './interface/http/controllers/user.controller'; import { KycController } from './interface/http/controllers/kyc.controller'; import { WalletController } from './interface/http/controllers/wallet.controller'; import { MessageController } from './interface/http/controllers/message.controller'; import { AdminDashboardController } from './interface/http/controllers/admin-dashboard.controller'; import { AdminUserController } from './interface/http/controllers/admin-user.controller'; import { AdminSystemController } from './interface/http/controllers/admin-system.controller'; import { AdminAnalyticsController } from './interface/http/controllers/admin-analytics.controller'; import { TelemetryController } from './interface/http/controllers/telemetry.controller'; import { AdminTelemetryController } from './interface/http/controllers/admin-telemetry.controller'; import { AppVersionController } from './interface/http/controllers/app-version.controller'; import { AdminVersionController } from './interface/http/controllers/admin-version.controller'; import { MetricsController } from './interface/http/controllers/metrics.controller'; @Module({ imports: [ TypeOrmModule.forFeature([ User, KycSubmission, Wallet, Transaction, Message, AppVersion, TelemetryEvent, OnlineSnapshot, DailyActiveStats, ]), PassportModule.register({ defaultStrategy: 'jwt' }), JwtModule.register({ secret: process.env.JWT_ACCESS_SECRET || 'dev-access-secret', }), ScheduleModule.forRoot(), ], controllers: [ UserController, KycController, WalletController, MessageController, AdminDashboardController, AdminUserController, AdminSystemController, AdminAnalyticsController, TelemetryController, AdminTelemetryController, AppVersionController, AdminVersionController, MetricsController, ], providers: [ UserRepository, KycRepository, WalletRepository, TransactionRepository, MessageRepository, PresenceRedisService, UserProfileService, KycService, WalletService, MessageService, AdminDashboardService, AdminUserService, AdminSystemService, AdminAnalyticsService, TelemetryService, TelemetrySchedulerService, AppVersionService, FileStorageService, PackageParserService, TelemetryMetricsService, TelemetryProducerService, ], exports: [UserProfileService, WalletService, MessageService], }) export class UserModule {}