82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
import type { ITransactionManager } from "@erp/core/api";
|
|
|
|
import type { ICreateCustomerInputMapper } from "../mappers";
|
|
import type { ICustomerCreator, ICustomerFinder } from "../services";
|
|
import type {
|
|
ICustomerFullSnapshotBuilder,
|
|
ICustomerSummarySnapshotBuilder,
|
|
} from "../snapshot-builders";
|
|
import { CreateCustomerUseCase, GetCustomerByIdUseCase, ListCustomersUseCase } from "../use-cases";
|
|
|
|
export function buildGetCustomerByIdUseCase(deps: {
|
|
finder: ICustomerFinder;
|
|
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
|
|
transactionManager: ITransactionManager;
|
|
}) {
|
|
return new GetCustomerByIdUseCase(deps.finder, deps.fullSnapshotBuilder, deps.transactionManager);
|
|
}
|
|
|
|
export function buildListCustomersUseCase(deps: {
|
|
finder: ICustomerFinder;
|
|
summarySnapshotBuilder: ICustomerSummarySnapshotBuilder;
|
|
transactionManager: ITransactionManager;
|
|
}) {
|
|
return new ListCustomersUseCase(
|
|
deps.finder,
|
|
deps.summarySnapshotBuilder,
|
|
deps.transactionManager
|
|
);
|
|
}
|
|
|
|
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,
|
|
});
|
|
}
|
|
|
|
/*export function buildReportCustomerUseCase(deps: {
|
|
finder: ICustomerFinder;
|
|
fullSnapshotBuilder: ICustomerFullSnapshotBuilder;
|
|
reportSnapshotBuilder: ICustomerReportSnapshotBuilder;
|
|
documentService: CustomerDocumentGeneratorService;
|
|
transactionManager: ITransactionManager;
|
|
}) {
|
|
return new ReportCustomerUseCase(
|
|
deps.finder,
|
|
deps.fullSnapshotBuilder,
|
|
deps.reportSnapshotBuilder,
|
|
deps.documentService,
|
|
deps.transactionManager
|
|
);
|
|
}*/
|
|
|
|
/*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);
|
|
}*/
|