Uecko_ERP/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts
2025-05-09 12:45:32 +02:00

28 lines
982 B
TypeScript

import { UniqueID } from "@/core/common/domain";
import { Collection, Result } from "@repo/rdx-utils";
import { CustomerInvoice } from "../aggregates";
import { ICustomerInvoiceRepository } from "../repositories";
import { ICustomerInvoiceService } from "./customer-invoice-service.interface";
export class CustomerInvoiceService implements ICustomerInvoiceService {
constructor(private readonly invoiceRepository: ICustomerInvoiceRepository) {}
async findCustomerInvoices(
transaction?: any
): Promise<Result<Collection<CustomerInvoice>, Error>> {
const invoicesOrError = await this.invoiceRepository.findAll(transaction);
if (invoicesOrError.isFailure) {
return Result.fail(invoicesOrError.error);
}
return Result.ok(invoicesOrError.data);
}
async findCustomerInvoiceById(
invoiceId: UniqueID,
transaction?: any
): Promise<Result<CustomerInvoice>> {
return await this.invoiceRepository.findById(invoiceId, transaction);
}
}