// keymanagement.common.ts
import { IDataObject } from 'n8n-workflow';

export const KEYMANAGEMENT_BASE_PATH = '/keymgmt/v1';

export const KEYMANAGEMENT_ENDPOINTS = {
	HEALTH: '/health',
	KEY_CACHE: '/keycache',
	ROAM_CACHE: '/roamcache',
	SYNCED_AP_LIST: '/syncedaplist',
	KEY_HASH: '/keyhash',
	CLIENT_ROAM_HISTORY: '/clientroamhistory',
} as const;

export interface IKeyManagementParams extends IDataObject {
	client_mac?: string;
}

export function validateClientMac(clientMac: string): void {
	if (!clientMac) {
		throw new Error('Client MAC address is required');
	}

	// Basic MAC address format validation
	const macRegex = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/;
	if (!macRegex.test(clientMac)) {
		throw new Error(
			'Invalid MAC address format. Expected format: XX:XX:XX:XX:XX:XX or XX-XX-XX-XX-XX-XX',
		);
	}
}
