/** * Graph Transaction Interfaces * * Types for transaction management * Based on Ductape Graph API documentation (transactions.md, overview.md) */ import { GraphIsolationLevel, GraphTransactionStatus } from './enums'; /** * Transaction object * As documented in transactions.md */ export interface IGraphTransaction { /** Transaction ID */ id: string; /** Current transaction status */ status: GraphTransactionStatus; /** Underlying database transaction object */ client?: any; /** Native transaction object (alias for client, used by some adapters) */ nativeTransaction?: any; /** Transaction start time */ startTime?: Date; /** Commit the transaction */ commit?(): Promise; /** Rollback the transaction */ rollback?(): Promise; } /** * Transaction options * As documented in transactions.md */ export interface IGraphTransactionOptions { /** Transaction isolation level */ isolation?: GraphIsolationLevel | 'READ_COMMITTED' | 'SERIALIZABLE'; /** Transaction timeout in milliseconds */ timeout?: number; /** Whether transaction is read-only */ readOnly?: boolean; } /** * Transaction callback function type * As documented in transactions.md */ export type TransactionCallback = (transaction: IGraphTransaction) => Promise; /** * Transaction result */ export interface IGraphTransactionResult { /** Result of the transaction operations */ result: T; /** Whether transaction was committed successfully */ committed: boolean; /** Execution time in milliseconds */ executionTime?: number; }