bw-mini-app-server/src/app.module.ts

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 { }