Uecko_ERP/apps/server/archive/contexts/customer-billing/domain/services/customer-invoice.service.ts

28 lines
982 B
TypeScript
Raw Normal View History

2025-05-02 21:43:51 +00:00
import { UniqueID } from "@/core/common/domain";
2025-05-09 10:45:32 +00:00
import { Collection, Result } from "@repo/rdx-utils";
2025-02-25 15:25:30 +00:00
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);
}
}