// api/firmware/upgrade/firmware.descriptions.ts
import { INodeProperties } from 'n8n-workflow';
import { resourceDescriptions as swarmDescriptions } from './swarm/swarm.descriptions';
import { resourceDescriptions as deviceDescriptions } from './device/device.descriptions';
import { resourceDescriptions as versionDescriptions } from './version/version.descriptions';
import { resourceDescriptions as statusDescriptions } from './status/status.descriptions';
import { resourceDescriptions as upgradeDescriptions } from './upgrade/upgrade.descriptions';

// Resource selector for the firmware domain
export const resourceSelector: INodeProperties = {
	displayName: 'Resource',
	name: 'resource',
	type: 'options',
	noDataExpression: true,
	displayOptions: {
		show: {
			domain: ['firmware'],
		},
	},
	options: [
		{
			name: 'Device',
			value: 'device',
			description: 'Work with device firmware',
		},
		{
			name: 'Status',
			value: 'status',
			description: 'Get firmware upgrade status',
		},
		{
			name: 'Swarm',
			value: 'swarm',
			description: 'Work with swarm firmware',
		},
		{
			name: 'Upgrade',
			value: 'upgrade',
			description: 'Manage firmware upgrades',
		},
		{
			name: 'Version',
			value: 'version',
			description: 'Work with firmware versions',
		},
	],
	default: 'device',
};

export const firmwareDescriptions: INodeProperties[] = [
	resourceSelector,
	...swarmDescriptions,
	...deviceDescriptions,
	...versionDescriptions,
	...statusDescriptions,
	...upgradeDescriptions,
];
