import { IExecuteFunctions } from 'n8n-workflow';
import { logger } from '../../../helpers/logger';
import { getInsightDetailsNetwork } from './operations/getInsightDetailsNetwork.methods';
import { getInsightDetailsSite } from './operations/getInsightDetailsSite.methods';
import { getInsightDetailsAp } from './operations/getInsightDetailsAp.methods';
import { getInsightDetailsClient } from './operations/getInsightDetailsClient.methods';
import { getInsightDetailsGateway } from './operations/getInsightDetailsGateway.methods';
import { getInsightDetailsSwitch } from './operations/getInsightDetailsSwitch.methods';

/**
 * All operations available for the insightDetails resource
 */
export const insightDetailsOperations = {
	getInsightDetailsNetwork,
	getInsightDetailsSite,
	getInsightDetailsAp,
	getInsightDetailsClient,
	getInsightDetailsGateway,
	getInsightDetailsSwitch,
};

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