def get_permissions():
    from apps.users.views.user import UserViewSet
    from apps.leaderboard.views import LeaderboardViewSet
    from apps.bonus.views import BonusViewSet
    from apps.package.views import PackageViewSet
    from apps.level.views import LevelViewSet
    from apps.downline.views import DownlineViewSet
    from apps.profiles.views import ProfileViewSet
    from apps.core.views.permission import PermissionsAPIView
    from apps.withdraw.views import WithdrawViewSet
    from apps.payment.views import PaymentMethodViewSet
    from apps.reviews.views import TestimonialViewSet
    from apps.deposite.views import DepositViewSet
    from apps.blance_transfer.views import TransferViewSet

    ALL_VIEWSETS = {
        "users": [UserViewSet],
        "permissions": [PermissionsAPIView],
        "leaderboard": [LeaderboardViewSet],
        "bonus": [BonusViewSet],
        "package": [PackageViewSet],
        "level": [LevelViewSet],
        "downline": [DownlineViewSet],
        "profile": [ProfileViewSet],
        "withdraw": [WithdrawViewSet],
        "pymentMethod": [PaymentMethodViewSet],
        "deposit": [DepositViewSet],
        "testimonial": [TestimonialViewSet],
        "tranfer": [TransferViewSet],
    }

    result = {}

    for app_name, viewsets in ALL_VIEWSETS.items():
        app_perms = {}
        for vs in viewsets:
            if not hasattr(vs, "view_permissions"):
                continue
                
            if hasattr(vs, "permission_model_name"):
                model_name = vs.permission_model_name
            elif hasattr(vs, "model_name"):
                model_name = vs.model_name
            else:
                model_name = vs.__name__.replace("ViewSet", "").lower()
            
            if isinstance(vs.view_permissions, (set, list)):
                actions_list = list(vs.view_permissions)
            else:
                actions_list = [vs.view_permissions]
            
            app_perms[model_name] = actions_list

        result[app_name] = app_perms
    
    return result