FactuGES_ERP/modules/customer-invoices/src/api/controllers/create-customer-invoice/index.ts
2025-06-26 13:32:55 +02:00

22 lines
1004 B
TypeScript

import { SequelizeTransactionManager } from "@erp/core/api";
import { Sequelize } from "sequelize";
import { CreateCustomerInvoiceUseCase, CreateCustomerInvoicesPresenter } from "../../application/";
import { CustomerInvoiceService } from "../../domain";
import { CustomerInvoiceRepository, customerInvoiceMapper } from "../../infrastructure";
import { CreateCustomerInvoiceController } from "./create-customer-invoice";
export const buildCreateCustomerInvoicesController = (database: Sequelize) => {
const transactionManager = new SequelizeTransactionManager(database);
const customerInvoiceRepository = new CustomerInvoiceRepository(database, customerInvoiceMapper);
const customerInvoiceService = new CustomerInvoiceService(customerInvoiceRepository);
const presenter = new CreateCustomerInvoicesPresenter();
const useCase = new CreateCustomerInvoiceUseCase(
customerInvoiceService,
transactionManager,
presenter
);
return new CreateCustomerInvoiceController(useCase);
};