import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

import { AuditReport } from './entities/audit-report.entity';
import { AuditReportClause } from './entities/audit-report-clause.entity';
import { AuditReportSection } from './entities/audit-report-section.entity';
import { AuditReportAttendance } from './entities/audit-report-attendance.entity';
import { AuditReportVersion } from './entities/audit-report-version.entity';
import { AuditReportImage } from './entities/audit-report-image.entity';
import { ClauseLibrary } from './entities/clause-library.entity';
import { ReportTemplate } from './entities/report-template.entity';

import { ReportBuilderService } from './services/report-builder.service';
import { ReportRenderService } from './services/report-render.service';
import { ReportWorkflowService } from './services/report-workflow.service';
import { ClauseLibraryService } from './services/clause-library.service';
import { ReportAiService } from './services/report-ai.service';
import { ReportDocxService } from './services/report-docx.service';
import { ReportImageService } from './services/report-image.service';

import { AuditReportBuilderController } from './controllers/audit-report-builder.controller';
import { ClientAuditReportController } from './controllers/client-audit-report.controller';

import { AuditReportStorageService } from '../audit-schedules/services/audit-report-storage.service';
import { PreviousNcModule } from '../previous-nc/previous-nc.module';
import { MailsModule } from '../mails/mails.module';
import { ReportPdfService } from './services/report-pdf.service';

@Module({
  imports: [
    TypeOrmModule.forFeature(
      [AuditReport, AuditReportClause, AuditReportSection, AuditReportAttendance, AuditReportVersion, AuditReportImage, ClauseLibrary, ReportTemplate],
      'scheme_dbs',
    ),
    PreviousNcModule, // PreviousNcService.createNew + userCanViewAll
    MailsModule,
  ],
  controllers: [AuditReportBuilderController, ClientAuditReportController],
  
  providers: [ReportBuilderService, ReportRenderService, ReportWorkflowService, ClauseLibraryService, AuditReportStorageService, ReportAiService, ReportDocxService, ReportImageService,ReportPdfService,],
  exports: [ReportBuilderService, ReportRenderService],
})
export class AuditReportBuilderModule {}
