---
title: "AFL Womens Example"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{AFL Womens Example}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
not_cran <- identical(Sys.getenv("NOT_CRAN"), "true")
online <- !is.null(curl::nslookup("r-project.org", error = FALSE))
eval_param <- not_cran & online

knitr::opts_chunk$set(
  eval = eval_param,
  message = FALSE,
  warning = FALSE,
  collapse = TRUE,
  comment = "#>"
)

library(fitzRoy)
library(dplyr)
```

The package provides easy access to AFLW data from the AFL.com.au website. This can be accessed via the normal `fetch_` functions in the same way you would access Men's data. 

This vignette talks through the main data sources. To fully understand how the `fetch_` functions work - please read the [Main Fetch Functions](https://jimmyday12.github.io/fitzRoy/articles/main-fetch-functions.html) vignette. 

## Fixture
Firstly, we can return the fixture for a season or particular round. 

```{r}
not_cran
online
eval_param
```

```{r fetch_fixture_aflw2, eval=FALSE, include=TRUE}
fetch_fixture(season = 2021, comp = "AFLW") %>%
  select(
    compSeason.name, round.name,
    home.team.name, away.team.name,
    venue.name
  )
```
```{r fetch_fixture_aflw2_included,  echo=FALSE, eval=eval_param}
fitzRoy:::fixture_afl_aflw_2021 %>%
  select(
    compSeason.name, round.name,
    home.team.name, away.team.name,
    venue.name
  )
```
## Lineup
We can get the lineup for a given set of matches in a particular round. 
```{r lineup, include=TRUE, eval=FALSE}
fetch_lineup(2021, round_number = 1, comp = "AFLW") %>%
  select(
    round.name, status, teamName,
    player.playerName.givenName,
    player.playerName.surname, teamStatus
  )
```

```{r lineup_included, echo=FALSE, eval=eval_param}
fitzRoy:::lineup_aflw_2021_1 %>%
  select(
    round.name, status, teamName,
    player.playerName.givenName,
    player.playerName.surname, teamStatus
  )
```


## Results
The match results, including the teams playing, venue information and final scores are returned via `fetch_results`. 

```{r fetch_results_aflw, eval=FALSE, include=TRUE}
fetch_results(2020, round_number = 1, comp = "AFLW") %>%
  select(
    match.date, match.name,
    homeTeamScore.matchScore.totalScore, awayTeamScore.matchScore.totalScore
  )
```
```{r fetch_results_aflw_included,  echo=FALSE, eval=eval_param}
fitzRoy:::results_afl_aflw_2020 %>%
  dplyr::filter(round.roundNumber == 1) %>%
  select(
    match.date, match.name,
    homeTeamScore.matchScore.totalScore,
    awayTeamScore.matchScore.totalScore
  )
```

## Ladder
We can also get the ladder at any point with `fetch_ladder`.

```{r fetch_ladder_aflw2, eval=FALSE, include=TRUE}
fetch_ladder(2020, round_number = 6, comp = "AFLW") %>%
  select(
    season, round_name,
    position, team.name, played,
    pointsFor, pointsAgainst
  )
```
```{r fetch_ladder_aflw2_included,  echo=FALSE, eval=eval_param}
fitzRoy:::ladder_afl_aflw_2020 %>%
  dplyr::filter(round_number == 7) %>%
  select(
    season, round_name,
    position, team.name, played,
    pointsFor, pointsAgainst
  )
```


## Stats
Lastly - we have basic player stats. This will return player level statistics such as possessions, time on ground, fantasy points and a myriad of other statistics.

```{r fetch_stats, eval=FALSE, include=TRUE}
fetch_player_stats(2020, round_number = 1, comp = "AFLW") %>%
  select(player.player.player.givenName:clearances.totalClearances)
```
```{r fetch_stats_included, echo=FALSE, eval=eval_param}
fitzRoy:::stats_afl_aflw_2020 %>%
  dplyr::filter(round.roundNumber == 1) %>%
  dplyr::select(player.player.player.givenName:clearances.totalClearances)
```

## Player Details
We can return player details such as data of birth and listed height and weight. 

```{r details_aflw, eval=FALSE, include=TRUE}
details_aflw <- fetch_player_details(team = "Western Bulldogs", current = TRUE, comp = "AFLW", source = "AFL")

head(details_aflw)
```
```{r details_aflw_included, echo=FALSE, eval=eval_param}
details_aflw <- fitzRoy:::details_aflw
head(details_aflw)
```

## Coaches Votes
We can also return the coaches votes for a particular season, team or round. 

```{r fetch_coaches_votes_aflw, eval=FALSE, include=TRUE}
fetch_coaches_votes(season = 2021, round_number = 9, comp = "AFLW", team = "Western Bulldogs")
```
```{r fetch_coaches_votes_aflw_included, echo=FALSE, eval=eval_param}
fitzRoy:::aflw_coaches_votes %>%
  dplyr::filter(Home.Team == "Western Bulldogs" & Round == 9) %>%
  head()
```

## Legacy/Advanced Stats
We have a legacy function to provide advanced AFLW stats. This is going to be deprecated in favour of a more robust solution but still works for now. The following code should show you how to use those functions. 
### Match data

A good thing to check is that the cookie is working. Often this gets changed or moved and without it, the code won't work. 


```{r cookie, eval=FALSE, include=TRUE}
cookie <- get_afl_cookie()
print(cookie)
```
```{r cookie_included, echo=FALSE, eval=eval_param}
cookie <- fitzRoy:::cookie
print(cookie)
```

Note - if this is `NULL` the rest of this Vignette won't show any outputs but the code will remain! 

```{r cookie_param, include=FALSE, eval=eval_param}
if (is.null(cookie)) {
  eval_param <- FALSE
}
```

We can use the `fetch_results()` function to retrieve match data matches.

```{r fetch_match_stats, eecho=FALSE, eval=eval_param}
match_data <- fetch_results(2020, round_number = 1, comp = "AFLW")
```
```{r fetch_match_stats2, include=FALSE, eval = eval_param}
match_data <- fitzRoy:::results_afl_aflw_2020 %>%
  dplyr::filter(round.roundNumber == 1)
```

Note that there will be warnings if a fixture is available but no match data has
been added yet. If this is the case, make sure you don't try to request detailed
match stats for these match IDs. 

```{r show_match_stats, eval=eval_param}
glimpse(match_data)
```

### Detailed stats

The `get_aflw_detailed_data()` can be used to return more detailed data than the
match data shown above. It takes a vector of match IDs as an argument. For
example, let's say we want detailed stats for the first 10 games in `match_data`
above. Then we would do:

```{r first_10, eval = eval_param}
first10 <- head(match_data, 10)
first10_ids <- first10$Match.Id
first10_ids
```

```{r detailed, eval=FALSE, include=TRUE}
detailed <- get_aflw_detailed_data(first10_ids)
glimpse(detailed)
```
```{r detailed_included, echo=FALSE, eval=eval_param}
fitzRoy:::detailed_stats_aflw_2020 %>% glimpse()
```

