import { INodeProperties } from 'n8n-workflow';
import { addDescriptions } from '../../../helpers/deduplicate';
import { getNetworksDescription } from './operations/getNetworks.descriptions';
import { getNetwork_nameDescription } from './operations/getNetwork_name.descriptions';
import { getBandwidth_usageDescription } from './operations/getBandwidth_usage.descriptions';

/**
 * Operation selector for the network resource
 */
export const networkOperationSelector: INodeProperties = {
	displayName: 'Operation',
	name: 'operation',
	type: 'options',
	noDataExpression: true,
	displayOptions: {
		show: {
			resource: ['network'],
			domain: ['monitoring'],
		},
	},
	options: [
		{
			name: 'Get Networks',
			value: 'getNetworks',
			description: 'List all Networks',
			action: 'Get Networks',
		},
		{
			name: 'Get Network_name',
			value: 'getNetwork_name',
			description: 'Get Network details',
			action: 'Get Network_name',
		},
		{
			name: 'Get Bandwidth_usage',
			value: 'getBandwidth_usage',
			description: 'WLAN Network Bandwidth usage',
			action: 'Get Bandwidth_usage',
		},
	],
	default: 'getNetworks',
};

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

// Add each operation's descriptions
addDescriptions(networkDescriptions, getNetworksDescription);
addDescriptions(networkDescriptions, getNetwork_nameDescription);
addDescriptions(networkDescriptions, getBandwidth_usageDescription);
