# plots for animal production
#
cat("Loading animal product data ......\n")

fadn.countries = "all"
# load animal production
source("total_production_animal.R")
fadn.animals.dt <- ANIMALS.production.all %>% distinct()
str(fadn.animals.dt )

cat("Converting NUTS 2016....\n")
fadn.str.animals <- fadnUtils::NUTS.convert.all(fadn.animals.dt, "all", 2016)


# check NUTS, if converted
fadn.str.animals %>% filter(COUNTRY == "DEU") %>% count(NUTS2,NUTS2_final)

fadn.str.animals.organic <- fadn.str.animals %>%
  mutate(ORGANIC=case_when(
    ORGANIC=="org-2" ~ "Organic",
    TRUE ~ "Conventional"
  ),YEAR = as.factor(YEAR)) %>%
  mutate(value2 = WEIGHT*value) %>%
  # filter(variable == filter.variable) %>%
  rename(VARIABLE= variable) %>%
  select(-(TF8:SIZ6),-WEIGHT)



group_by_lst <- c("COUNTRY","REGION","NUTS1","NUTS2","NUTS1_final","NUTS2_final", "EU")
animals.groupby <-  lapply(seq_along(group_by_lst),
                           function(i) fadn.filter(fadn.str.animals.organic,
                                                   group_by_lst[i],
                                                   "ANIM")) %>%
  bind_rows() %>%
  mutate(REG_TYPE = case_when(REG_TYPE == "COUNTRY" ~"MS",
                              REG_TYPE == "REGION" ~ "FADN_REGION",
                              REG_TYPE == "NUTS1" ~ "NUTS1_ORG",
                              REG_TYPE =="NUTS2"~ "NUTS2_ORG",
                              REG_TYPE =="NUTS1_final"~ "Xinxin_NUTS1",
                              REG_TYPE =="NUTS2_final" ~"Xinxin_NUTS2",
                              TRUE ~ REG_TYPE)) %>%
  mutate_if(is.factor, as.character)


# plots ----
# MS ----
options(scipen = 999)
for (var in c("EALP", "EAAP", "GROF")) {
  for (country in fadn.countries.sel) {
    # country= "DEU"
    p <-  animals.groupby %>%
      filter(REG_TYPE == "MS" &
               VARIABLE == var & REGION == country) %>%
      ggplot(aes(
        x = YEAR,
        y = sum_Value,
        color = ORGANIC,
        group = ORGANIC
      )) +
      geom_point() +
      geom_line() +
      facet_wrap(vars(ANIM),
                 # space="free",
                 ncol = 4,
                 scale = "free_y") +
      ggtitle(paste0(var, " of country: ", country)) +
      ylim(c(0, NA)) +
      theme(axis.text.x = element_text(angle = 45, hjust = 1))
    options(scipen = 999)


    ggsave(
      plot = p ,
      filename = paste0(
        CurrentProjectDirectory,
        "/plots/animal/TP/",
        var,
        "/",
        country,
        "_",
        var,
        ".png"
      ),
      width = 18,
      height = 8
    )

  }
}

# EU ------------------------------------------------------------------
for (var in c("EALP", "EAAP", "GROF") ){
p <- animals.groupby %>%
  filter(REG_TYPE == "Xinxin_NUTS2" &
           VARIABLE == var ) %>%
  ggplot(aes(
    x = YEAR,
    y = sum_Value,
    color = ORGANIC,
    group = ORGANIC
  )) +
  geom_point() +
  geom_line() +
  facet_wrap(vars(ANIM),
             # space="free",
             ncol = 4,
             scale = "free_y") +
  ggtitle(paste0(var, " of EU ")) +
  ylim(c(0, NA)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))


ggsave(
  plot = p ,
  filename = paste0(
    CurrentProjectDirectory,
    "/plots/animal/TP/EU/",
    var,
    ".png"
  ),
  width = 18,
  height = 8
)
}

# NUTS2 -------------------------------------------------------------------