Files
dsc-api/src/modules/invoices/invoices.module.ts
T

38 lines
1.7 KiB
TypeScript
Executable File

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 {}