import { getGraphQLConfig } from '@/src/core/config/graphql.config' import { getLiveKitConfig } from '@/src/core/config/livekit.config'; import { AccountModule } from '@/src/module/auth/account/account.module' import { DeactivateModule } from '@/src/module/auth/deactivate/deactivate.module' import { PasswordRecoveryModule } from '@/src/module/auth/password-recovery/password-recovery.module' import { ProfileModule } from '@/src/module/auth/profile/profile.module' import { SessionModule } from '@/src/module/auth/session/session.module' import { TotpModule } from '@/src/module/auth/totp/totp.module' import { VerificationModule } from '@/src/module/auth/verification/verification.module' import { CronModule } from '@/src/module/cron/cron.module' import { LiveKitModule } from '@/src/module/libs/livekit/livekit.module' import { MailModule } from '@/src/module/libs/mail/mail.module' import { StorageModule } from '@/src/module/libs/storage/storage.module' import { IngressModule } from '@/src/module/stream/ingress/ingress.module'; import { StreamModule } from '@/src/module/stream/stream.module' import { IS_DEV } from '@/src/shared/util/is-dev.util' import { ApolloDriver } from '@nestjs/apollo' import { Module } from '@nestjs/common' import { ConfigModule, ConfigService } from '@nestjs/config' import { GraphQLModule } from '@nestjs/graphql' import { PrismaModule } from './prisma/prisma.module' import { RedisModule } from './redis/redis.module' @Module({ imports: [ ConfigModule.forRoot({ ignoreEnvFile: !IS_DEV, isGlobal: true, }), GraphQLModule.forRootAsync({ driver: ApolloDriver, imports: [ConfigModule], useFactory: getGraphQLConfig, inject: [ConfigService], }), PrismaModule, RedisModule, MailModule, CronModule, StorageModule, LiveKitModule.registerAsync({ imports: [ConfigModule], useFactory: getLiveKitConfig, inject: [ConfigService], }), AccountModule, SessionModule, VerificationModule, PasswordRecoveryModule, TotpModule, DeactivateModule, ProfileModule, StreamModule, IngressModule, ], }) export class CoreModule {}