# app/services/permission_checker.rb
module PermissionChecker
  # extend instead of include because we are defining class methods
  # so we can use methods defined in ServiceResponse as class methods
  extend ServiceResponse

  # Check if the user is either an admin or platform-admin
  def self.ensure_admin_or_platform_admin!(user)
    user.admin? || user.platform_admin?
  end

  # Check if the user is admin only
  def self.ensure_admin_only!(user)
    user.admin?
  end

  # Check if the user is platform-admin only
  def self.ensure_platform_admin_only!(user)
    user.platform_admin?
  end

  # Check if the user is guest | admin | platform admin
  def self.ensure_all_groups!(user)
    user.guest? || user.admin? || user.platform_admin?
  end

  # Check if the user is guest only
  def self.ensure_guest_only!(user)
    user.guest?
  end
end 