/** * ════════════════════════════════════════════════════════════ * مُصادَق (Musadaq) — Invoices Module (Finalized) * ════════════════════════════════════════════════════════════ */ import { Module, forwardRef } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { BullModule } from '@nestjs/bull'; import { InvoicesService } from './invoice.service'; import { InvoicesController } from './invoice.controller'; import { PublicInvoiceController } from './public-invoice.controller'; import { Invoice } from './entities/invoice.entity'; import { InvoiceLine } from './entities/invoice-line.entity'; import { InvoiceProcessor } from './invoice.processor'; import { GeminiExtractorService } from './gemini-extractor.service'; import { UBLGeneratorService } from './ubl-generator.service'; import { JoFotaraGatewayService } from './jofotara-gateway.service'; import { LocalStorageService } from '../../services/storage/local-storage.service'; import { SubscriptionsModule } from '../subscriptions/subscription.module'; import { TaxValidationModule } from '../validation/tax-validation.module'; import { CompaniesModule } from '../companies/company.module'; @Module({ imports: [ TypeOrmModule.forFeature([Invoice, InvoiceLine]), BullModule.registerQueue( { name: 'invoice-processing' }, { name: 'invoice-bulk-queue' } ), forwardRef(() => SubscriptionsModule), forwardRef(() => CompaniesModule), TaxValidationModule, ], providers: [ InvoicesService, InvoiceProcessor, GeminiExtractorService, UBLGeneratorService, JoFotaraGatewayService, LocalStorageService, ], controllers: [InvoicesController, PublicInvoiceController], exports: [InvoicesService], }) export class InvoicesModule {}