import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { CacheModule } from './modules/cache/cache.module'; import { ProductsModule } from './modules/products/products.module'; import { SyncModule } from './modules/sync/sync.module'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ScheduleModule } from '@nestjs/schedule'; import { TaskModule } from './modules/task/task.module'; import { PolicyModule } from './modules/policy/policy.module'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, }), CacheModule, ProductsModule, TaskModule, SyncModule, TypeOrmModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (config: ConfigService) => ({ type: 'mysql', host: config.get('DB_HOST'), port: config.get('DB_PORT'), username: config.get('DB_USER'), password: config.get('DB_PASS'), database: config.get('DB_NAME'), autoLoadEntities: true, synchronize: true, // chỉ bật dev }), }), ScheduleModule.forRoot(), PolicyModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {}