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);
|
|
|
|
|
}*/
|