import { Criteria } from "@repo/rdx-criteria/server"; import { UniqueID } from "@repo/rdx-ddd"; import { Collection, Result } from "@repo/rdx-utils"; import { CustomerInvoice, CustomerInvoiceProps } from "../aggregates"; export interface ICustomerInvoiceService { build(props: CustomerInvoiceProps, id?: UniqueID): Result; save(invoice: CustomerInvoice, transaction: any): Promise>; existsById(id: UniqueID, transaction?: any): Promise>; findByCriteria( criteria: Criteria, transaction?: any ): Promise, Error>>; getById(id: UniqueID, transaction?: any): Promise>; updateById( id: UniqueID, data: Partial, transaction?: any ): Promise>; createCustomerInvoice( id: UniqueID, data: CustomerInvoiceProps, transaction?: any ): Promise>; deleteById(id: UniqueID, transaction?: any): Promise>; }