kt-template-online-api/src/modules/qqbot/napcat/qqbot-napcat.module.ts

65 lines
2.9 KiB
TypeScript

import { forwardRef, Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AdminAuthGuardModule } from '@/modules/admin/identity/auth/admin-auth-guard.module';
import { QQBOT_ACCOUNT_NAPCAT_RUNTIME_PORT } from '@/modules/qqbot/core/application/account/qqbot-account-napcat-runtime.port';
import { QqbotCoreModule } from '@/modules/qqbot/core/qqbot-core.module';
import { QqbotNapcatAccountRuntimeService } from './application/account-runtime/qqbot-napcat-account-runtime.service';
import { QqbotNapcatLoginService } from './application/login/qqbot-napcat-login.service';
import { QqbotNapcatWatchdogService } from './application/login/qqbot-napcat-watchdog.service';
import { NapcatConfigWriterService } from './application/runtime/napcat-config-writer.service';
import { NapcatLoginEventService } from './application/runtime/napcat-login-event.service';
import { NapcatRuntimeProfileInspectorService } from './application/runtime/napcat-runtime-profile-inspector.service';
import { NapcatRuntimeProfileService } from './application/runtime/napcat-runtime-profile.service';
import { QqbotNapcatLoginController } from './contract/qqbot-napcat-login.controller';
import { QqbotNapcatRuntimeController } from './contract/qqbot-napcat-runtime.controller';
import { QqbotNapcatContainerService } from './infrastructure/integration/container/qqbot-napcat-container.service';
import { NapcatDeviceIdentityService } from './infrastructure/integration/device/napcat-device-identity.service';
import { NAPCAT_RUNTIME_ENTITIES } from './infrastructure/persistence';
import { NapcatLoginStateStoreService } from './infrastructure/persistence/napcat-login-state-store.service';
export const QQBOT_NAPCAT_ENTITIES = [...NAPCAT_RUNTIME_ENTITIES];
export const QQBOT_NAPCAT_CONTROLLERS = [
QqbotNapcatLoginController,
QqbotNapcatRuntimeController,
];
export const QQBOT_NAPCAT_PROVIDERS = [
NapcatConfigWriterService,
NapcatDeviceIdentityService,
NapcatLoginStateStoreService,
NapcatLoginEventService,
NapcatRuntimeProfileInspectorService,
NapcatRuntimeProfileService,
QqbotNapcatAccountRuntimeService,
QqbotNapcatContainerService,
QqbotNapcatLoginService,
QqbotNapcatWatchdogService,
{
provide: QQBOT_ACCOUNT_NAPCAT_RUNTIME_PORT,
useExisting: QqbotNapcatAccountRuntimeService,
},
];
export const QQBOT_NAPCAT_EXPORTS = [
NapcatDeviceIdentityService,
NapcatLoginEventService,
NapcatLoginStateStoreService,
QQBOT_ACCOUNT_NAPCAT_RUNTIME_PORT,
QqbotNapcatLoginService,
];
@Module({
imports: [
ConfigModule,
AdminAuthGuardModule,
forwardRef(() => QqbotCoreModule),
TypeOrmModule.forFeature(QQBOT_NAPCAT_ENTITIES),
],
controllers: QQBOT_NAPCAT_CONTROLLERS,
providers: QQBOT_NAPCAT_PROVIDERS,
exports: [TypeOrmModule, ...QQBOT_NAPCAT_EXPORTS],
})
export class QqbotNapcatModule {}