/**
 * Валидаторы для админки
 */

/**
 * Валидация имени воронки
 */
export function validateFunnelName(name: string): { isValid: boolean; error?: string } {
  if (!name || name.trim().length === 0) {
    return { isValid: false, error: 'Название не может быть пустым' };
  }
  
  if (name.length > 100) {
    return { isValid: false, error: 'Название слишком длинное (максимум 100 символов)' };
  }
  
  return { isValid: true };
}

/**
 * Валидация ID экрана
 */
export function validateScreenId(id: string, existingIds: string[]): { isValid: boolean; error?: string } {
  if (!id || id.trim().length === 0) {
    return { isValid: false, error: 'ID не может быть пустым' };
  }
  
  // Проверка формата (только буквы, цифры, дефис, подчеркивание)
  if (!/^[a-zA-Z0-9_-]+$/.test(id)) {
    return { isValid: false, error: 'ID может содержать только буквы, цифры, дефис и подчеркивание' };
  }
  
  // Проверка уникальности
  if (existingIds.includes(id)) {
    return { isValid: false, error: 'Экран с таким ID уже существует' };
  }
  
  return { isValid: true };
}

/**
 * Валидация описания
 */
export function validateDescription(description: string): { isValid: boolean; error?: string } {
  if (description && description.length > 500) {
    return { isValid: false, error: 'Описание слишком длинное (максимум 500 символов)' };
  }
  
  return { isValid: true };
}
