FactuGES_ERP/modules/customers/src/api/application/di/customer-use-cases.di.ts

82 lines
2.5 KiB
TypeScript
Raw Normal View History

2026-03-07 18:27:23 +00:00
import type { ITransactionManager } from "@erp/core/api";
2026-03-09 20:23:48 +00:00
import type { ICreateCustomerInputMapper } from "../mappers";
import type { ICustomerCreator, ICustomerFinder } from "../services";
2026-03-07 22:11:39 +00:00
import type {
ICustomerFullSnapshotBuilder,
ICustomerSummarySnapshotBuilder,
} from "../snapshot-builders";
2026-03-09 20:23:48 +00:00
import { CreateCustomerUseCase, GetCustomerByIdUseCase, ListCustomersUseCase } from "../use-cases";
2026-03-07 18:27:23 +00:00
2026-03-07 22:11:39 +00:00
export function buildGetCustomerByIdUseCase(deps: {
2026-03-07 18:27:23 +00:00
finder: ICustomerFinder;
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
transactionManager: ITransactionManager;
}) {
return new GetCustomerByIdUseCase(deps.finder, deps.fullSnapshotBuilder, deps.transactionManager);
2026-03-07 22:11:39 +00:00
}
2026-03-07 18:27:23 +00:00
export function buildListCustomersUseCase(deps: {
finder: ICustomerFinder;
2026-03-07 21:39:21 +00:00
summarySnapshotBuilder: ICustomerSummarySnapshotBuilder;
2026-03-07 18:27:23 +00:00
transactionManager: ITransactionManager;
}) {
2026-03-07 21:39:21 +00:00
return new ListCustomersUseCase(
deps.finder,
deps.summarySnapshotBuilder,
deps.transactionManager
);
2026-03-07 18:27:23 +00:00
}
2026-03-09 20:23:48 +00:00
export function buildCreateCustomerUseCase(deps: {
creator: ICustomerCreator;
dtoMapper: ICreateCustomerInputMapper;
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
transactionManager: ITransactionManager;
}) {
return new CreateCustomerUseCase({
dtoMapper: deps.dtoMapper,
creator: deps.creator,
fullSnapshotBuilder: deps.fullSnapshotBuilder,
transactionManager: deps.transactionManager,
});
}
2026-03-07 21:39:21 +00:00
/*export function buildReportCustomerUseCase(deps: {
2026-03-07 18:27:23 +00:00
finder: ICustomerFinder;
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
reportSnapshotBuilder: ICustomerReportSnapshotBuilder;
documentService: CustomerDocumentGeneratorService;
transactionManager: ITransactionManager;
}) {
return new ReportCustomerUseCase(
deps.finder,
deps.fullSnapshotBuilder,
deps.reportSnapshotBuilder,
deps.documentService,
deps.transactionManager
);
2026-03-07 21:39:21 +00:00
}*/
2026-03-07 18:27:23 +00:00
/*export function buildUpdateCustomerUseCase(deps: {
finder: ICustomerFinder;
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
}) {
return new UpdateCustomerUseCase(deps.finder, deps.fullSnapshotBuilder);
}
export function buildDeleteCustomerUseCase(deps: { finder: ICustomerFinder }) {
return new DeleteCustomerUseCase(deps.finder);
}
export function buildIssueCustomerUseCase(deps: { finder: ICustomerFinder }) {
return new IssueCustomerUseCase(deps.finder);
}
export function buildChangeStatusCustomerUseCase(deps: {
finder: ICustomerFinder;
transactionManager: ITransactionManager;
}) {
return new ChangeStatusCustomerUseCase(deps.finder, deps.transactionManager);
}*/