FactuGES_ERP/modules/customers/src/api/controllers/create-customer/index.ts

18 lines
847 B
TypeScript
Raw Normal View History

2025-08-11 17:49:52 +00:00
import { SequelizeTransactionManager } from "@erp/core/api";
import { Sequelize } from "sequelize";
import { CreateCustomerUseCase, CreateCustomersPresenter } from "../../application/";
import { CustomerService } from "../../domain";
import { CustomerMapper } from "../../infrastructure";
import { CreateCustomerController } from "./create-customer";
export const buildCreateCustomersController = (database: Sequelize) => {
const transactionManager = new SequelizeTransactionManager(database);
const customerRepository = new customerRepository(database, new CustomerMapper());
const customerService = new CustomerService(customerRepository);
const presenter = new CreateCustomersPresenter();
const useCase = new CreateCustomerUseCase(customerService, transactionManager, presenter);
return new CreateCustomerController(useCase);
};