Uecko_ERP/modules/customer-invoices/src/api/application/issued-invoices/di/use-cases.di.ts

52 lines
1.6 KiB
TypeScript
Raw Normal View History

2026-02-07 22:07:23 +00:00
import type { ITransactionManager } from "@erp/core/api";
import type { IIssuedInvoiceDocumentReportService, IIssuedInvoiceFinder } from "../services";
import type { IIssuedInvoiceListItemSnapshotBuilder } from "../snapshot-builders";
import type { IIssuedInvoiceFullSnapshotBuilder } from "../snapshot-builders/full";
import type { IIssuedInvoiceReportSnapshotBuilder } from "../snapshot-builders/report";
import {
GetIssuedInvoiceByIdUseCase,
ListIssuedInvoicesUseCase,
ReportIssuedInvoiceUseCase,
} from "../use-cases";
export function buildGetIssuedInvoiceByIdUseCase(deps: {
finder: IIssuedInvoiceFinder;
fullSnapshotBuilder: IIssuedInvoiceFullSnapshotBuilder;
transactionManager: ITransactionManager;
}) {
return new GetIssuedInvoiceByIdUseCase(
deps.finder,
deps.fullSnapshotBuilder,
deps.transactionManager
);
}
export function buildListIssuedInvoicesUseCase(deps: {
finder: IIssuedInvoiceFinder;
itemSnapshotBuilder: IIssuedInvoiceListItemSnapshotBuilder;
transactionManager: ITransactionManager;
}) {
return new ListIssuedInvoicesUseCase(
deps.finder,
deps.itemSnapshotBuilder,
deps.transactionManager
);
}
export function buildReportIssuedInvoiceUseCase(deps: {
finder: IIssuedInvoiceFinder;
fullSnapshotBuilder: IIssuedInvoiceFullSnapshotBuilder;
reportSnapshotBuilder: IIssuedInvoiceReportSnapshotBuilder;
documentService: IIssuedInvoiceDocumentReportService;
transactionManager: ITransactionManager;
}) {
return new ReportIssuedInvoiceUseCase(
deps.finder,
deps.fullSnapshotBuilder,
deps.reportSnapshotBuilder,
deps.documentService,
deps.transactionManager
);
}