import { INodeProperties } from 'n8n-workflow';
import { addDescriptions } from '../../../helpers/deduplicate';
import { getVersionsDescription } from './operations/getVersions.descriptions';
import { checkVersionDescription } from './operations/checkVersion.descriptions';

export const resourceOperationSelector: INodeProperties = {
	displayName: 'Operation',
	name: 'operation',
	type: 'options',
	noDataExpression: true,
	displayOptions: {
		show: {
			resource: ['version'],
			domain: ['firmware'],
		},
	},
	options: [
		{
			name: 'Get Firmware Versions',
			value: 'getVersions',
			description: 'Get a list of available firmware versions for devices',
			action: 'Get available firmware versions',
		},
		{
			name: 'Check Firmware Version',
			value: 'checkVersion',
			description: 'Check whether a specific firmware version is available',
			action: 'Check if a firmware version is available',
		},
	],
	default: 'getVersions',
};

export const resourceDescriptions: INodeProperties[] = [resourceOperationSelector];

// Add each operation's descriptions
addDescriptions(resourceDescriptions, getVersionsDescription);
addDescriptions(resourceDescriptions, checkVersionDescription);
