@kenniy/godeye-data-contracts
Version:
Enterprise-grade base repository architecture for GOD-EYE microservices with zero overhead and maximum code reuse
19 lines (18 loc) • 879 B
TypeScript
/**
* Shared Bulk Operations Utility (DRY)
* Eliminates duplication between Repository and BaseTransactionRepository
*/
import { IBulkOperation, IBulkResult } from '../types/response.types';
import { ICriteria } from '../types/repository.types';
export interface IBulkOperationRepository<T> {
create(data: Partial<T>): Promise<T>;
update(criteria: ICriteria<T>, data: Partial<T>): Promise<T>;
delete(criteria: ICriteria<T>): Promise<boolean>;
}
/**
* Execute bulk operations using any repository implementation
* @param operations - Array of bulk operations to execute
* @param repository - Repository instance with create/update/delete methods
* @returns Promise resolving to bulk operation results
*/
export declare function executeBulkOperations<T, R = T>(operations: IBulkOperation<T>[], repository: IBulkOperationRepository<T>): Promise<IBulkResult<R>>;