60 lines
2.3 KiB
TypeScript
60 lines
2.3 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { AppController } from './app.controller';
|
|
import { TemplateService } from './templates/index';
|
|
import { TemplateManager } from './templates/types';
|
|
import { databaseConfig } from './config/database.config';
|
|
import { N8nTemplateEntity } from './entities/n8n-template.entity';
|
|
import { TemplateExecutionEntity } from './entities/template-execution.entity';
|
|
import { UserEntity } from './entities/user.entity';
|
|
import { PlatformUserEntity } from './entities/platform-user.entity';
|
|
import { ExtensionDataEntity } from './entities/extension-data.entity';
|
|
import { UserCreditEntity } from './entities/user-credit.entity';
|
|
import { UserSubscriptionEntity } from './entities/user-subscription.entity';
|
|
import { AdWatchEntity } from './entities/ad-watch.entity';
|
|
import { N8nTemplateFactoryService } from './services/n8n-template-factory.service';
|
|
import { TemplateController } from './controllers/template.controller';
|
|
import { PlatformModule } from './platform/platform.module';
|
|
import { ContentModerationModule } from './content-moderation/content-moderation.module';
|
|
import { HttpModule } from '@nestjs/axios';
|
|
import { JwtModule } from '@nestjs/jwt';
|
|
|
|
@Module({
|
|
imports: [
|
|
HttpModule,
|
|
JwtModule.registerAsync({
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService) => ({
|
|
secret: config.get('JWT_SECRET'),
|
|
signOptions: { expiresIn: '24h' },
|
|
}),
|
|
}),
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
envFilePath: ['.env.local', '.env'],
|
|
}),
|
|
TypeOrmModule.forRootAsync({
|
|
inject: [ConfigService],
|
|
useFactory: (configService: ConfigService) =>
|
|
databaseConfig(configService),
|
|
}),
|
|
TypeOrmModule.forFeature([
|
|
N8nTemplateEntity,
|
|
TemplateExecutionEntity,
|
|
UserEntity,
|
|
PlatformUserEntity,
|
|
ExtensionDataEntity,
|
|
UserCreditEntity,
|
|
UserSubscriptionEntity,
|
|
AdWatchEntity,
|
|
]),
|
|
PlatformModule,
|
|
ContentModerationModule,
|
|
],
|
|
controllers: [AppController, TemplateController],
|
|
providers: [TemplateService, TemplateManager, N8nTemplateFactoryService],
|
|
exports: [N8nTemplateFactoryService],
|
|
})
|
|
export class AppModule { }
|