// api/rapids/rogues/rogues.descriptions.ts (updated)
import { INodeProperties } from 'n8n-workflow';
import { addDescriptions } from '../../../helpers/deduplicate';
import { getRogueApListDescription } from './operations/getRogueApList.descriptions';
import { getInterferingApListDescription } from './operations/getInterferingApList.descriptions';
import { getSuspectApListDescription } from './operations/getSuspectApList.descriptions';
import { getNeighborApListDescription } from './operations/getNeighborApList.descriptions';
import { getManuallyContainedApListDescription } from './operations/getManuallyContainedApList.descriptions';

/**
 * Operation selector for the rogues resource
 */
export const roguesOperationSelector: INodeProperties = {
	displayName: 'Operation',
	name: 'operation',
	type: 'options',
	noDataExpression: true,
	displayOptions: {
		show: {
			resource: ['rogues'],
			domain: ['rapids'],
		},
	},
	options: [
		{
			name: 'List Rogue APs',
			value: 'getRogueApList',
			description: 'Get rogue APs over a time period',
			action: 'List Rogue APs',
		},
		{
			name: 'List Interfering APs',
			value: 'getInterferingApList',
			description: 'Get interfering APs over a time period',
			action: 'List Interfering APs',
		},
		{
			name: 'List Suspect APs',
			value: 'getSuspectApList',
			description: 'Get suspect APs over a time period',
			action: 'List Suspect APs',
		},
		{
			name: 'List Neighbor APs',
			value: 'getNeighborApList',
			description: 'Get neighbor APs over a time period',
			action: 'List Neighbor APs',
		},
		{
			name: 'List Manually Contained APs',
			value: 'getManuallyContainedApList',
			description: 'Get manually contained APs over a time period',
			action: 'List Manually Contained APs',
		},
	],
	default: 'getRogueApList',
};

// Combined descriptions for all operations in this resource
export const roguesDescriptions: INodeProperties[] = [roguesOperationSelector];

// Add each operation's descriptions
addDescriptions(roguesDescriptions, getRogueApListDescription);
addDescriptions(roguesDescriptions, getInterferingApListDescription);
addDescriptions(roguesDescriptions, getSuspectApListDescription);
addDescriptions(roguesDescriptions, getNeighborApListDescription);
addDescriptions(roguesDescriptions, getManuallyContainedApListDescription);
