37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
|
|
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,
|
||
|
|
}),
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|