import { IExecuteFunctions } from 'n8n-workflow';
import { logger } from '../../../helpers/logger';
import { getNetworks } from './operations/getNetworks.methods';
import { getNetwork_name } from './operations/getNetwork_name.methods';
import { getBandwidth_usage } from './operations/getBandwidth_usage.methods';

/**
 * All operations available for the network resource
 */
export const networkOperations = {
	getNetworks,
	getNetwork_name,
	getBandwidth_usage,
};

/**
 * Check if a network operation exists
 *
 * @param operation Operation name to check
 * @returns boolean indicating if the operation exists
 */
export function hasNetworkOperation(operation: string): boolean {
	const exists = !!networkOperations[operation as keyof typeof networkOperations];
	logger.debug(
		'monitoring:network:check',
		`Operation "${operation}" ${exists ? 'exists' : 'does not exist'}`,
	);
	return exists;
}
