import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AdminUser } from '../admin/entities/admin-user.entity'; import { Permission } from '../admin/entities/permission.entity'; import { Role } from '../admin/entities/role.entity'; import { DataSyncJob } from '../data/entities/data-sync-job.entity'; import { DramaMetric } from '../data/entities/drama-metric.entity'; import { EpisodeMetric } from '../data/entities/episode-metric.entity'; import { Drama } from '../dramas/entities/drama.entity'; import { Episode } from '../dramas/entities/episode.entity'; import { PlaybackErrorLog } from '../logs/entities/playback-error-log.entity'; import { RequestLog } from '../logs/entities/request-log.entity'; import { MediaUploadJob } from '../media/entities/media-upload-job.entity'; import { Order } from '../orders/entities/order.entity'; import { UserEpisodeUnlock } from '../orders/entities/user-episode-unlock.entity'; import { User } from '../users/entities/user.entity'; const databaseImports = process.env.DB_HOST ? [ TypeOrmModule.forRoot({ type: 'mysql', host: process.env.DB_HOST, port: Number(process.env.DB_PORT) || 3306, username: process.env.DB_USERNAME ?? 'root', password: process.env.DB_PASSWORD ?? '', database: process.env.DB_DATABASE ?? 'cth_tk', entities: [ AdminUser, Permission, Role, DataSyncJob, DramaMetric, EpisodeMetric, Drama, Episode, PlaybackErrorLog, RequestLog, MediaUploadJob, Order, UserEpisodeUnlock, User, ], synchronize: process.env.DB_SYNCHRONIZE === 'true', }), ] : []; @Module({ imports: databaseImports, }) export class DatabaseModule {}