Files
dsc-api/src/modules/invoices/invoices.module.ts
T
2026-01-04 10:34:34 +03:30

57 lines
2.3 KiB
TypeScript
Executable File

import { BullModule } from "@nestjs/bullmq";
import { forwardRef, Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { INVOICE } from "./constants";
import { InvoiceItem } from "./entities/invoice-item.entity";
import { Invoice } from "./entities/invoice.entity";
import { InvoicesController } from "./invoices.controller";
import { InvoicesService } from "./providers/invoices.service";
import { InvoiceProcessor } from "./queue/invoice.processor";
import { InvoiceItemsRepository } from "./repositories/invoice-items.repository";
import { InvoicesRepository } from "./repositories/invoices.repository";
import { AccessLogsModule } from "../access-logs/access-logs.module";
import { DmenuModule } from "../dmenu/dmenu.module";
import { Discount } from "../discounts/entities/discount.entity";
import { UsageDiscount } from "../discounts/entities/usage-discount.entity";
import { DiscountRepository } from "../discounts/repositories/discounts.repository";
import { UsageDiscountRepository } from "../discounts/repositories/usage-discounts.repository";
import { LoggerModule } from "../logger/logger.module";
import { NotificationModule } from "../notifications/notifications.module";
import { PaymentsModule } from "../payments/payments.module";
import { UsersModule } from "../users/users.module";
import { UtilsModule } from "../utils/utils.module";
import { WalletsModule } from "../wallets/wallets.module";
@Module({
imports: [
LoggerModule,
BullModule.registerQueue({
name: INVOICE.QUEUE_NAME,
defaultJobOptions: {
removeOnComplete: true,
removeOnFail: false,
},
}),
BullModule.registerQueue({
name: INVOICE.EXTERNAL_QUEUE_NAME,
prefix: INVOICE.EXTERNAL_INVOICE_JOB_NAME,
defaultJobOptions: {
removeOnComplete: true,
removeOnFail: false,
},
}),
TypeOrmModule.forFeature([Invoice, InvoiceItem, Discount, UsageDiscount]),
UsersModule,
WalletsModule,
UtilsModule,
NotificationModule,
PaymentsModule,
AccessLogsModule,
forwardRef(() => DmenuModule),
],
providers: [InvoicesService, InvoicesRepository, InvoiceItemsRepository, DiscountRepository, UsageDiscountRepository, InvoiceProcessor],
controllers: [InvoicesController],
exports: [InvoicesService],
})
export class InvoicesModule {}