import {PermissionAction, User} from '../types/auth';

export const checkPermission = (
    user: User,
    categoryId: string,
    action: PermissionAction
): boolean => {
  // Если пользователь админ — ему разрешено всё
  if (user.permissions.isAdmin) return true;

  // Проверяем, есть ли такая категория в permissions
  const categoryPermissions = user.permissions.categories[categoryId];

  // Если категория отсутствует или в ней нет действия — запрет
  return categoryPermissions ? categoryPermissions[action] : false;
};

export const checkCityAccess = (user: User, cityId: number): boolean => {
  if (user.permissions.isAdmin) return true;
  return user.permissions.cities.includes(cityId);
};

export const getDefaultPermissions = () => ({
  categories: {
    1: { create: false, edit: false, delete: false },
    2: { create: false, edit: false, delete: false },
    3: { create: false, edit: false, delete: false },
    4: { create: false, edit: false, delete: false },
    5: { create: false, edit: false, delete: false },
    6: { create: false, edit: false, delete: false },
    7: { create: false, edit: false, delete: false },
    8: { create: false, edit: false, delete: false }
  },
  cities: [],
  isAdmin: false
});