// api/monitoring/ap/ap.methods.ts
import { IExecuteFunctions } from 'n8n-workflow';
import { logger } from '../../../helpers/logger';
import { getAps } from './operations/getAps.methods';
import { getBssids } from './operations/getBssids.methods';
import { getSerial } from './operations/getSerial.methods';
import { deleteSerial } from './operations/deleteSerial.methods';
import { getRf_summary } from './operations/getRf_summary.methods';
import { getBandwidth_usage } from './operations/getBandwidth_usage.methods';
import { getTopn } from './operations/getTopn.methods';
import { getClientMatchSteerHistory } from './operations/getClientMatchSteerHistory.methods';
import { getClientMatchInfo } from './operations/getClientMatchInfo.methods';
import { initiateClientSteer } from './operations/initiateClientSteer.methods';

/**
 * All operations available for the ap resource
 */
export const apOperations = {
	getAps,
	getBssids,
	getSerial,
	deleteSerial,
	getRf_summary,
	getBandwidth_usage,
	getTopn,
	getClientMatchSteerHistory,
	getClientMatchInfo,
	initiateClientSteer,
};

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