import { BullModule } from "@nestjs/bullmq"; import { 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 { InvoicesRepository } from "./repositories/invoices.repository"; 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 { NotificationModule } from "../notifications/notifications.module"; import { UsersModule } from "../users/users.module"; import { UtilsModule } from "../utils/utils.module"; import { WalletsModule } from "../wallets/wallets.module"; import { InvoiceProcessor } from "./queue/invoice.processor"; import { InvoiceItemsRepository } from "./repositories/invoice-items.repository"; import { LoggerModule } from "../logger/logger.module"; @Module({ imports: [ LoggerModule, BullModule.registerQueue({ name: INVOICE.INVOICE_QUEUE_NAME }), TypeOrmModule.forFeature([Invoice, InvoiceItem, Discount, UsageDiscount]), UsersModule, WalletsModule, UtilsModule, NotificationModule, ], providers: [InvoicesService, InvoicesRepository, InvoiceItemsRepository, DiscountRepository, UsageDiscountRepository, InvoiceProcessor], controllers: [InvoicesController], exports: [InvoicesService], }) export class InvoicesModule {}