Filter out node based on connected node values

Hey,

I have two nodes, lets call them Person & Company.

The Person has an edge named Worker pointing to Company.
The company has a bool predicate isDeleted.

I wish to retrieve a Persons by it uid and return nothing if the company isDeleted predicate is set to true.
Preferable by using the root func to get the Person and not the Company and then recourse all decedents.

This worked for me, but is there a better way?

query {
  var(func: eq(user.id, "8cbe5522-6adf-4f2b-8801-8497736c9342")) {
    user.tenant @filter(eq(tnnt.isDeleted, f)) {
      u1 as uid
    }
  }
  get(func: eq(user.id, "8cbe5522-6adf-4f2b-8801-8497736c9342")) @filter(eq(user.isDeleted, f) and eq(len(u1), 1)) {
    user.id
    user.isEnabled
  }
}