Elasticsearch grand child aggregation

I have the following data model hierarchy: League cups -> teams -> players. League cup is the parent of teams and team is parent of players. League cup model has an attribute called country. I'm trying to write an aggregation to get list of players, and for each player get the countries he has played the league cups in. I'm having trouble writing the query. Any help is appreciated.

Here is the mapping:

"template" : "gamingSeason*",
"mappings": {
"leagues": {
  "_routing": {
    "required": true
  },
  "properties": {
    "eventTime": {
      "type": "date"
    },
    "leagueId": {
      "type": "string",
      "index": "not_analyzed"
    },
    "country": {
      "type": "string",
      "index": "not_analyzed"
    }
},
"teams": {
  "_routing": {
    "required": true
  },
  "_parent": {
    "type": "leagues"
  },
  "properties": {
    "teamId": {
      "type": "string",
      "index": "not_analyzed"
  }  
},
"players" : {
  "_routing": {
    "required": true
  },
  "_parent" : {
    "type" : "teams"
  },
  "properties": {
    "playerName": {
      "type": "string",
      "index": "not_analyzed",
      "fields": {
        "raw": {
          "type": "string"
        }
      }
    }  
   }
  }
}