import { INodeProperties } from 'n8n-workflow';

// Define a estrutura para cada Tool do Evolution API
export const evolutionApiToolDescription: INodeProperties[] = [
	{
		displayName: 'Operation',
		name: 'operation',
		type: 'options',
		default: 'sendMessage',
		description: 'Operation to perform with Evolution API',
		options: [
			{
				name: 'Send Text Message',
				value: 'sendMessage',
				description: 'Send a text message to a WhatsApp contact',
			},
			{
				name: 'Send Media Message',
				value: 'sendMedia',
				description: 'Send a media message to a WhatsApp contact',
			},
			{
				name: 'Get QR Code',
				value: 'getQrCode',
				description: 'Get QR Code for WhatsApp instance connection',
			},
		],
	},
	{
		displayName: 'Instance',
		name: 'instance',
		type: 'string',
		default: '',
		required: true,
		description: 'The name of the WhatsApp instance',
	},
	{
		displayName: 'Phone Number',
		name: 'phoneNumber',
		type: 'string',
		default: '',
		required: true,
		displayOptions: {
			show: {
				operation: [
					'sendMessage',
					'sendMedia',
				],
			},
		},
		description: 'Phone number with country code (e.g., 5511999999999)',
	},
	{
		displayName: 'Message',
		name: 'message',
		type: 'string',
		default: '',
		required: true,
		displayOptions: {
			show: {
				operation: [
					'sendMessage',
				],
			},
		},
		description: 'Text message to be sent',
	},
	{
		displayName: 'Media Type',
		name: 'mediaType',
		type: 'options',
		default: 'image',
		required: true,
		displayOptions: {
			show: {
				operation: [
					'sendMedia',
				],
			},
		},
		options: [
			{
				name: 'Image',
				value: 'image',
				description: 'Send an image file',
			},
			{
				name: 'Document',
				value: 'document',
				description: 'Send a document file',
			},
			{
				name: 'Video',
				value: 'video',
				description: 'Send a video file',
			},
			{
				name: 'Audio',
				value: 'audio',
				description: 'Send an audio file',
			},
		],
		description: 'Type of media to send',
	},
	{
		displayName: 'Media URL',
		name: 'mediaUrl',
		type: 'string',
		default: '',
		required: true,
		displayOptions: {
			show: {
				operation: [
					'sendMedia',
				],
			},
		},
		description: 'URL of the media to send',
	},
	{
		displayName: 'Caption',
		name: 'caption',
		type: 'string',
		default: '',
		displayOptions: {
			show: {
				operation: [
					'sendMedia',
				],
			},
		},
		description: 'Caption for the media (optional)',
	},
]; 