84 lines
2.7 KiB
TypeScript
84 lines
2.7 KiB
TypeScript
|
|
import type { ITransactionManager } from "@erp/core/api";
|
||
|
|
|
||
|
|
import type { ICreateCustomerInputMapper } from "../mappers";
|
||
|
|
import type {
|
||
|
|
ICustomerCreator,
|
||
|
|
ICustomerFinder,
|
||
|
|
CustomerDocumentGeneratorService,
|
||
|
|
} from "../services";
|
||
|
|
import type {
|
||
|
|
ICustomerListItemSnapshotBuilder,
|
||
|
|
ICustomerReportSnapshotBuilder,
|
||
|
|
} from "../snapshot-builders";
|
||
|
|
import type { ICustomerFullSnapshotBuilder } from "../snapshot-builders/full";
|
||
|
|
import { GetCustomerByIdUseCase, ListCustomersUseCase, ReportCustomerUseCase } from "../use-cases";
|
||
|
|
import { CreateCustomerUseCase } from "../use-cases/create-customer";
|
||
|
|
|
||
|
|
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;
|
||
|
|
itemSnapshotBuilder: ICustomerListItemSnapshotBuilder;
|
||
|
|
transactionManager: ITransactionManager;
|
||
|
|
}) {
|
||
|
|
return new ListCustomersUseCase(deps.finder, deps.itemSnapshotBuilder, 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 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 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);
|
||
|
|
}*/
|