34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
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<CustomerInvoice, Error>;
|
|
|
|
save(invoice: CustomerInvoice, transaction: any): Promise<Result<CustomerInvoice, Error>>;
|
|
|
|
existsById(id: UniqueID, transaction?: any): Promise<Result<boolean, Error>>;
|
|
|
|
findByCriteria(
|
|
criteria: Criteria,
|
|
transaction?: any
|
|
): Promise<Result<Collection<CustomerInvoice>, Error>>;
|
|
|
|
getById(id: UniqueID, transaction?: any): Promise<Result<CustomerInvoice>>;
|
|
|
|
updateById(
|
|
id: UniqueID,
|
|
data: Partial<CustomerInvoiceProps>,
|
|
transaction?: any
|
|
): Promise<Result<CustomerInvoice, Error>>;
|
|
|
|
createCustomerInvoice(
|
|
id: UniqueID,
|
|
data: CustomerInvoiceProps,
|
|
transaction?: any
|
|
): Promise<Result<CustomerInvoice, Error>>;
|
|
|
|
deleteById(id: UniqueID, transaction?: any): Promise<Result<void, Error>>;
|
|
}
|