Uecko_ERP/modules/customer-invoices/src/api/infrastructure/invoice-series/di/invoice-series.di.ts

37 lines
1.0 KiB
TypeScript
Raw Normal View History

import { type ModuleParams, buildTransactionManager } from "@erp/core/api";
import {
type ListInvoiceSeriesUseCase,
buildInvoiceSeriesFinder,
buildInvoiceSeriesSnapshotBuilders,
buildListInvoiceSeriesUseCase,
} from "../../../application";
import { buildInvoiceSeriesRepository } from "./invoice-series-repository.di";
export type InvoiceSeriesInternalDeps = {
useCases: {
listInvoiceSeries: () => ListInvoiceSeriesUseCase;
};
};
export function buildInvoiceSeriesDependencies(params: ModuleParams): InvoiceSeriesInternalDeps {
const { database } = params;
const transactionManager = buildTransactionManager(database);
const repository = buildInvoiceSeriesRepository(database);
const finder = buildInvoiceSeriesFinder(repository);
const snapshotBuilders = buildInvoiceSeriesSnapshotBuilders();
return {
useCases: {
listInvoiceSeries: () =>
buildListInvoiceSeriesUseCase({
finder,
summarySnapshotBuilder: snapshotBuilders.summary,
transactionManager,
}),
},
};
}