// ═══════════════════════════════════════════════════════════════════════
// previous-nc.module.ts — Phase 1 + Phase 2A + Phase 2B
// ═══════════════════════════════════════════════════════════════════════

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

import { PreviousNcController } from './controllers/previous-nc.controller';
import { PreviousNcService } from './services/previous-nc.service';
import { PreviousNcPdfService } from './services/previous-nc-pdf.service';
import { NcFileStorageService } from './services/nc-file-storage.service';
import { NcClosureService } from './services/nc-closure.service';
import { ClosurePdfService } from './services/closure-pdf.service'; // 🆕 PHASE 2B

// Entities
import { PreviousNcEntity } from './entities/previous-nc.entity';
import { PreviousNcrEntryEntity } from './entities/previous-ncr-entry.entity';
import { PreviousNcRemarkEntity } from './entities/previous-nc-remark.entity';
import { PreviousNcFinalClosureEntity } from './entities/previous-nc-final-closure.entity';
import { PreviousNcClientEntity } from './entities/previous-nc-client.entity';
import { PreviousNcSurveEntity } from './entities/previous-nc-surve.entity';
import { PreviousNcStandardEntity } from './entities/previous-nc-standard.entity';
import { PreviousNcUserEntity } from './entities/previous-nc-user.entity';
import { NcEmailTemplateService } from './services/nc-email-template.service';
import { MailsModule } from '../mails/mails.module';
import { AuditNcStatusExcelService } from './services/audit-nc-status-excel.service';
import { AuditNcStatusPdfService } from './services/audit-nc-status-pdf.service';


const ENTITIES = [
  PreviousNcEntity,
  PreviousNcrEntryEntity,
  PreviousNcRemarkEntity,
  PreviousNcFinalClosureEntity,
  PreviousNcClientEntity,
  PreviousNcSurveEntity,
  PreviousNcStandardEntity,
  PreviousNcUserEntity,
];

@Module({
  imports: [
    TypeOrmModule.forFeature(ENTITIES, 'qrs'),
    TypeOrmModule.forFeature(ENTITIES, 'tqs'),
    MailsModule,
  ],
  controllers: [PreviousNcController],
  providers: [
    PreviousNcService,
    PreviousNcPdfService,
    NcFileStorageService,
    NcClosureService,
    ClosurePdfService,
    NcEmailTemplateService,
    AuditNcStatusExcelService,
    AuditNcStatusPdfService,
  ],
  exports: [PreviousNcService,PreviousNcPdfService],
})
export class PreviousNcModule { }