export interface ITransactionManager {
  /**
   * 🔹 Inicia una transacción
   */
  start(): Promise<void>;

  /**
   * 🔹 Obtiene la transacción activa
   */
  getTransaction(): any;

  /**
   * 🔹 Ejecuta un bloque de código dentro de una transacción
   * Si algo falla, se hace rollback automáticamente.
   */
  complete<T>(work: (transaction: any) => Promise<T>): Promise<T>;

  /**
   * 🔹 Confirma la transacción
   */
  commit(): Promise<void>;

  /**
   * 🔹 Revierte la transacción
   */
  rollback(): Promise<void>;
}
