/**
 * 应用层模块
 * [2026-01-04] 更新：新增 SystemAccountReportApplicationService 用于系统账户报表聚合
 * 回滚方式：删除 SystemAccountReportApplicationService 的导入和注册
 */
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { DomainModule } from '../domain/domain.module';
import { InfrastructureModule } from '../infrastructure/infrastructure.module';
import { GenerateReportHandler } from './commands/generate-report/generate-report.handler';
import { ExportReportHandler } from './commands/export-report/export-report.handler';
import { GetReportSnapshotHandler } from './queries/get-report-snapshot/get-report-snapshot.handler';
import { ReportingApplicationService } from './services/reporting-application.service';
import { DashboardApplicationService } from './services/dashboard-application.service';
// [2026-01-04] 新增：系统账户报表聚合服务
import { SystemAccountReportApplicationService } from './services/system-account-report-application.service';
import { ReportGenerationScheduler } from './schedulers/report-generation.scheduler';

@Module({
  imports: [ScheduleModule.forRoot(), DomainModule, InfrastructureModule],
  providers: [
    GenerateReportHandler,
    ExportReportHandler,
    GetReportSnapshotHandler,
    ReportingApplicationService,
    DashboardApplicationService,
    // [2026-01-04] 新增：系统账户报表聚合服务
    SystemAccountReportApplicationService,
    ReportGenerationScheduler,
  ],
  exports: [
    GenerateReportHandler,
    ExportReportHandler,
    GetReportSnapshotHandler,
    ReportingApplicationService,
    DashboardApplicationService,
    // [2026-01-04] 新增：系统账户报表聚合服务
    SystemAccountReportApplicationService,
  ],
})
export class ApplicationModule {}
