package hwsauth import ( "context" "database/sql" ) // DBTransaction represents a database transaction that can be committed or rolled back. // This interface can be implemented by standard library sql.Tx, or by ORM transactions // from libraries like bun, gorm, sqlx, etc. type DBTransaction interface { Commit() error Rollback() error } // DBConnection represents a database connection that can begin transactions. // This interface can be implemented by standard library sql.DB, or by ORM connections // from libraries like bun, gorm, sqlx, etc. type DBConnection interface { BeginTx(ctx context.Context, opts *sql.TxOptions) (DBTransaction, error) } // Ensure *sql.Tx implements DBTransaction var _ DBTransaction = (*sql.Tx)(nil) // Ensure *sql.DB implements DBConnection var _ DBConnection = (*sql.DB)(nil)