import { Module } from '@nestjs/common';
import { TransactionSynthesizer } from './transaction-synthesizer';
import { FactWriter } from './fact-writer.service';
import { ParserPipeline } from './parser-pipeline.service';
import { ParserRegistry } from './parsers/parser.registry';
import { EncounterParser } from './parsers/encounter.parser';
import { DiagnosisParser } from './parsers/diagnosis.parser';
import { TreatmentParser } from './parsers/treatment.parser';
import { RecommendationParser } from './parsers/recommendation.parser';
import { AppointmentParser } from './parsers/appointment.parser';
import { OrderParser } from './parsers/order.parser';
import { PaymentParser } from './parsers/payment.parser';
import { EmrParser } from './parsers/emr.parser';
import { ImageParser } from './parsers/image.parser';
import { RechargeParser } from './parsers/recharge.parser';
import { ComplaintParser } from './parsers/complaint.parser';
import { ReferralParser } from './parsers/referral.parser';
import { RefundParser } from './parsers/refund.parser';
import { ConsultationParser } from './parsers/consultation.parser';
import { VisitRegistrationParser } from './parsers/visit-registration.parser';
import { VisitReceptionParser } from './parsers/visit-reception.parser';

@Module({
  providers: [
    TransactionSynthesizer,
    FactWriter,
    ParserPipeline,
    ParserRegistry,
    EncounterParser,
    DiagnosisParser,
    TreatmentParser,
    RecommendationParser,
    AppointmentParser,
    OrderParser,
    PaymentParser,
    EmrParser,
    ImageParser,
    RechargeParser,
    ComplaintParser,
    ReferralParser,
    RefundParser,
    ConsultationParser,
    VisitRegistrationParser,
    VisitReceptionParser,
  ],
  exports: [TransactionSynthesizer, FactWriter, ParserPipeline],
})
export class PipelineModule {}
