private ResponseStatusCode isAllowedToInviteUserWithSpecifiedRole(
            @NotNull GroupMemberRole requesterRole,
            @NotNull GroupInvitationStrategy groupInvitationStrategy) {
        return switch (groupInvitationStrategy) {
            case ALL, ALL_REQUIRING_APPROVAL -> ResponseStatusCode.OK;
            case OWNER, OWNER_REQUIRING_APPROVAL -> requesterRole == GroupMemberRole.OWNER
                    ? ResponseStatusCode.OK
                    : ResponseStatusCode.NOT_GROUP_OWNER_TO_SEND_GROUP_INVITATION;
            case OWNER_MANAGER, OWNER_MANAGER_REQUIRING_APPROVAL ->
                requesterRole == GroupMemberRole.OWNER || requesterRole == GroupMemberRole.MANAGER
                        ? ResponseStatusCode.OK
                        : ResponseStatusCode.NOT_GROUP_OWNER_OR_MANAGER_TO_SEND_GROUP_INVITATION;
            case OWNER_MANAGER_MEMBER, OWNER_MANAGER_MEMBER_REQUIRING_APPROVAL ->
                requesterRole == GroupMemberRole.OWNER
                        || requesterRole == GroupMemberRole.MANAGER
                        || requesterRole == GroupMemberRole.MEMBER
                                ? ResponseStatusCode.OK
                                : ResponseStatusCode.NOT_GROUP_MEMBER_TO_SEND_GROUP_INVITATION;
        };
    }
@return Possible codes: {@link ResponseStatusCode#OK}
        {@link ResponseStatusCode#SEND_MESSAGE_TO_MUTED_GROUP}
        {@link ResponseStatusCode#SEND_MESSAGE_TO_INACTIVE_GROUP}
        {@link ResponseStatusCode#MUTED_GROUP_MEMBER_SEND_MESSAGE}
turms-service/src/main/java/im/turms/service/domain/group/service/GroupMemberService.java