49 lines
1.9 KiB
TypeScript
49 lines
1.9 KiB
TypeScript
import type { SetupParams } from "@erp/core/api";
|
|
import { buildCatalogs, buildTransactionManager } from "@erp/core/api";
|
|
|
|
import {
|
|
buildIssuedInvoiceFinder,
|
|
buildIssuedInvoiceSnapshotBuilders,
|
|
} from "../../../application/issued-invoices";
|
|
|
|
import { buildIssuedInvoiceDocumentService } from "./issued-invoice-documents.di";
|
|
import { buildIssuedInvoicePersistenceMappers } from "./issued-invoice-persistence-mappers.di";
|
|
import { buildIssuedInvoiceRepository } from "./issued-invoice-repositories.di";
|
|
import type { IssuedInvoicesInternalDeps } from "./issued-invoices.di";
|
|
|
|
export type IssuedInvoicePublicServices = {
|
|
listIssuedInvoices: (filters: unknown, context: unknown) => null;
|
|
getIssuedInvoiceById: (id: unknown, context: unknown) => null;
|
|
generateIssuedInvoiceReport: (id: unknown, options: unknown, context: unknown) => null;
|
|
};
|
|
|
|
export function buildIssuedInvoiceServices(
|
|
params: SetupParams,
|
|
deps: IssuedInvoicesInternalDeps
|
|
): IssuedInvoicePublicServices {
|
|
const { database } = params;
|
|
|
|
// Infrastructure
|
|
const transactionManager = buildTransactionManager(database);
|
|
const catalogs = buildCatalogs();
|
|
const persistenceMappers = buildIssuedInvoicePersistenceMappers(catalogs);
|
|
|
|
const repository = buildIssuedInvoiceRepository({ database, mappers: persistenceMappers });
|
|
|
|
// Application helpers
|
|
const finder = buildIssuedInvoiceFinder(repository);
|
|
const snapshotBuilders = buildIssuedInvoiceSnapshotBuilders();
|
|
const documentGeneratorPipeline = buildIssuedInvoiceDocumentService(params);
|
|
|
|
return {
|
|
listIssuedInvoices: (filters, context) => null,
|
|
//internal.useCases.listIssuedInvoices().execute(filters, context),
|
|
|
|
getIssuedInvoiceById: (id, context) => null,
|
|
//internal.useCases.getIssuedInvoiceById().execute(id, context),
|
|
|
|
generateIssuedInvoiceReport: (id, options, context) => null,
|
|
//internal.useCases.reportIssuedInvoice().execute(id, options, context),
|
|
};
|
|
}
|