import { IExecuteFunctions } from 'n8n-workflow';
import { logger } from '../../../helpers/logger';
import { getMcs } from './operations/getMcs.methods';
import { getSerial } from './operations/getSerial.methods';
import { deleteSerial } from './operations/deleteSerial.methods';
import { getUsage } from './operations/getUsage.methods';
import { getPorts } from './operations/getPorts.methods';
import { getInfo } from './operations/getInfo.methods';
import { getMobility_controllers } from './operations/getMobility_controllers.methods';

/**
 * All operations available for the mobilitycontroller resource
 */
export const mobilitycontrollerOperations = {
	getMcs,
	getSerial,
	deleteSerial,
	getUsage,
	getPorts,
	getInfo,
	getMobility_controllers,
};

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