import type { JoinResolver } from '@nestjs-crud/core'; import type { CacheStrategy } from '@nestjs-crud/core/cache'; export interface PrismaQueryTranslatorConfig<_T> { entityColumns: string[]; entityPrimaryColumns: string[]; entityHasDeleteColumn: boolean; softDeleteColumn: string | null; onBadRequest: (msg: string) => void; joinResolver: JoinResolver; relationFields?: string[]; /** Optional cache backend. When set, FetchHelper wraps reads and invalidates on writes. */ cacheStrategy?: CacheStrategy; /** Entity name used as cache-key prefix. Required when cacheStrategy is set. */ entityName?: string; /** Optional logger passed into PrismaFetchHelper for cacheErrorPolicy warnings (FIX 2). */ logger?: { error: (msg: string, trace?: string) => void; warn?: (msg: string) => void; debug?: (msg: string) => void; [k: string]: any; }; } export interface PrismaClientLike { $transaction(fn: (tx: any) => Promise, opts?: { isolationLevel?: string; }): Promise; $transaction(ops: Promise[]): Promise; [model: string]: any; }