// ap.operations.ts - AP configuration operations
import { INodeProperties } from 'n8n-workflow';
import { getApCliDescription } from './getApCli.descriptions';
import { replaceApCliDescription } from './replaceApCli.descriptions';
import { getApSettingsDescription } from './getApSettings.descriptions';
import { replaceApSettingsDescription } from './replaceApSettings.descriptions';
import { setApHostnameDescription } from './setApHostname.descriptions';
import { setApSsidsDescription } from './setApSsids.descriptions';

const apOperationSelector: INodeProperties = {
  displayName: 'Operation',
  name: 'operation',
  type: 'options',
  noDataExpression: true,
  displayOptions: {
    show: {
      domain: ['configuration'],
      resource: ['ap'],
    },
  },
  options: [
    {
      name: 'Get AP CLI',
      value: 'getApCli',
      description: 'Get AP CLI configuration',
      action: 'Get AP CLI configuration',
    },
    {
      name: 'Replace AP CLI',
      value: 'replaceApCli',
      description: 'Replace AP CLI configuration',
      action: 'Replace AP CLI configuration',
    },
    {
      name: 'Get AP Settings',
      value: 'getApSettings',
      description: 'Get AP settings',
      action: 'Get AP settings',
    },
    {
      name: 'Replace AP Settings',
      value: 'replaceApSettings',
      description: 'Replace AP settings',
      action: 'Replace AP settings',
    },
    {
      name: 'Set AP Hostname',
      value: 'setApHostname',
      description: 'Set AP hostname',
      action: 'Set AP hostname',
    },
    {
      name: 'Set AP SSIDs',
      value: 'setApSsids',
      description: 'Set AP SSIDs',
      action: 'Set AP SSIDs',
    },
  ],
  default: 'getApCli',
};

export const apOperations: INodeProperties[] = [
  apOperationSelector,
  ...getApCliDescription,
  ...replaceApCliDescription,
  ...getApSettingsDescription,
  ...replaceApSettingsDescription,
  ...setApHostnameDescription,
  ...setApSsidsDescription,
];