import { GroupRole } from "@/entities/group-member.entity";

// constants/permission.constant.ts
export enum PermissionLevel {
  MEMBER = 'member',
  ADMIN = 'admin',
  OWNER = 'owner',
}

export const PERMISSION_LEVELS = {
  [PermissionLevel.MEMBER]: [GroupRole.OWNER, GroupRole.ADMIN, GroupRole.MEMBER],
  [PermissionLevel.ADMIN]: [GroupRole.OWNER, GroupRole.ADMIN],
  [PermissionLevel.OWNER]: [GroupRole.OWNER],
};

export const PERMISSION_ERROR_MESSAGES = {
  [PermissionLevel.MEMBER]: 'Bạn không có quyền truy cập',
  [PermissionLevel.ADMIN]: 'Chỉ owner hoặc admin mới có quyền',
  [PermissionLevel.OWNER]: 'Chỉ owner mới có quyền',
} as const;

export const METADATA_KEYS = {
  PERMISSION: 'permission',
  PERMISSION_OPTIONAL: 'permission_optional',
  PERMISSION_RESOURCE: 'permission_resource',
} as const;