export const DEFAULT_ACTIONS = {
  ROW_CREATE: 'Создание строки',
  ROW_DELETE: 'Удаление строки',
  ACCESS_WINDOW_CHANGE: 'Изменение окна доступа',
  ACCESS_EXTEND: 'Расширение доступа',
  USER_ROLE_CHANGE: 'Изменение роли пользователя',
  CREATE_TASK: 'Создание задачи',
  UPDATE_TASK: 'Обновление задачи',
  DELETE_TASK: 'Удаление задачи',
  USER_CREATE: 'Создание пользователя',
  LOGIN: 'Вход в систему',
  USER_ACCESS_GRANTED: 'Предоставление доступа к ССП/РФ',
  USER_ACCESS_REVOKED: 'Отмена доступа к ССП/РФ',
  VSP_CREATE: 'Создание ВСП',
};

export const ENTITY_RUSSIAN_NAMES = {
  LOGIN: 'Вход в систему',
  ROW: 'строки',
  PROJECT: 'проекта',
  TABLE: 'таблицы',
  STAGE: 'этапа',
  SSP: 'ССП/РФ',
  TASKS: 'задач',
  TASK: 'задачи',
  USER_ACCESS: 'доступа к ССП/РФ',
  USER: 'пользователя',
  ACCESS_WINDOW: 'окна доступа',
  USER_ROLE: 'роли пользователя',
  VSP: 'ВСП',
};

export const ACTION_RUSSIAN_NAMES = {
  CREATE: 'Создание',
  UPDATE: 'Обновление',
  DELETE: 'Удаление',
  CHANGE: 'Изменение',
  GET: 'Получение',
  GRANTED: 'Предоставление',
  REVOKED: 'Отмена',
};

export const getRussianNamesForType = (name) => {
  if (!name) return name;

  let entityTranslation = '';

  const sortedEntities = Object.keys(ENTITY_RUSSIAN_NAMES).sort(
    (a, b) => b.length - a.length,
  );

  for (const entity of sortedEntities) {
    if (name.includes(entity)) {
      entityTranslation = ENTITY_RUSSIAN_NAMES[entity];
      break;
    }
  }

  let actionTranslation = '';
  for (const action of Object.keys(ACTION_RUSSIAN_NAMES)) {
    if (name.includes(action)) {
      actionTranslation = ACTION_RUSSIAN_NAMES[action];
      break;
    }
  }

  if (!actionTranslation && !entityTranslation) {
    return name;
  }

  return `${actionTranslation} ${entityTranslation}`.trim();
};
