import { INodeProperties } from 'n8n-workflow';

export const returnAllOption: INodeProperties = {
	displayName: 'Return All',
	name: 'returnAll',
	type: 'boolean',
	default: false,
	description: 'Whether to return all results or only up to a specified limit',
};

export const limitOption: INodeProperties = {
	displayName: 'Limit',
	name: 'limit',
	type: 'number',
	typeOptions: {
		minValue: 1,
		maxValue: 1000,
	},
	default: 100,
	description: 'Max number of results to return',
	displayOptions: {
		show: {
			returnAll: [false],
		},
	},
};

export const nodeNameOption: INodeProperties = {
	displayName: 'Node Name',
	name: 'nodeName',
	type: 'string',
	required: true,
	default: '',
	placeholder: 'pve-node-01',
	description: 'Name of the ProxMox node',
};

export const vmIdOption: INodeProperties = {
	displayName: 'VM/Container ID',
	name: 'vmId',
	type: 'number',
	required: true,
	default: 100,
	typeOptions: {
		minValue: 100,
		maxValue: 999999999,
	},
	description: 'Unique ID of the virtual machine or container',
};

export const waitForTaskOption: INodeProperties = {
	displayName: 'Wait for Task Completion',
	name: 'waitForTask',
	type: 'boolean',
	default: true,
	description: 'Whether to wait for the ProxMox task to complete before returning',
};

export const taskTimeoutOption: INodeProperties = {
	displayName: 'Task Timeout (seconds)',
	name: 'taskTimeout',
	type: 'number',
	default: 300,
	typeOptions: {
		minValue: 10,
		maxValue: 3600,
	},
	description: 'Maximum time to wait for task completion',
	displayOptions: {
		show: {
			waitForTask: [true],
		},
	},
};
