# Plot Untouched Content Percentages.r

setScience("Untouched_Content", create=FALSE, subl=FALSE, load=FALSE)

setGitBranchToSystem()
.g()

loadFromJesus("release_count_per_store.2014", over=TRUE)
loadFromJesus("release_count_per_store.2015", over=TRUE)
loadFromJesus("release_count_per_store.by_month", over=TRUE)
loadFromJesus("track_count_per_store.2014", over=TRUE)
loadFromJesus("track_count_per_store.2015", over=TRUE)
loadFromJesus("track_count_per_store.by_month", over=TRUE)

fun.which_stores <- function(DT, top=10) {
  DT[order(N, decreasing=TRUE)][1:top, as.character(store_name)]
}

stores_using <- 
unique(c(
      fun.which_stores(release_count_per_store.2014)
    , fun.which_stores(track_count_per_store.2014)
    , fun.which_stores(release_count_per_store.2015)
    , fun.which_stores(track_count_per_store.2015)
    ))

release_count_per_store.2014[, store_factor := factor(store_name, levels=store_name[order(N, decreasing=TRUE)])]
track_count_per_store.2014[, store_factor := factor(store_name, levels=store_name[order(N, decreasing=TRUE)])]

release_count_per_store.2015[, store_factor := factor(store_name, levels=store_name[order(N, decreasing=TRUE)])]
track_count_per_store.2015[, store_factor := factor(store_name, levels=store_name[order(N, decreasing=TRUE)])]

release_count_per_store.avg_2014 <- release_count_per_store.by_month[accountingperiodid <= 192, list(monthly_avg = mean(perc_per_store_by_month)), keyby=c("storeid", "store_name", "store_is_in_analytics")]
track_count_per_store.avg_2014 <- track_count_per_store.by_month[accountingperiodid <= 192, list(monthly_avg = mean(perc_per_store_by_month)), keyby=c("storeid", "store_name", "store_is_in_analytics")]

storeCols <- c("store_name", "storeid")


setkeyIfNot(release_count_per_store.2014,     storeCols)
setkeyIfNot(release_count_per_store.2015,     storeCols)
setkeyIfNot(release_count_per_store.avg_2014,     storeCols)

DT.release_percs <- 
Reduce(merge, list(
  release_count_per_store.2014[.(stores_using), perc_per_store_in_2014, keyby=store_name]
, release_count_per_store.2015[.(stores_using), perc_per_store_in_2015, keyby=store_name]
, release_count_per_store.avg_2014[.(stores_using), monthly_avg, keyby=store_name]
))



setkeyIfNot(track_count_per_store.2014,     storeCols)
setkeyIfNot(track_count_per_store.2015,     storeCols)
setkeyIfNot(track_count_per_store.avg_2014,     storeCols)

DT.track_percs <- 
Reduce(merge, list(
  track_count_per_store.2014[.(stores_using), perc_per_store_in_2014, keyby=store_name]
, track_count_per_store.2015[.(stores_using), perc_per_store_in_2015, keyby=store_name]
, track_count_per_store.avg_2014[.(stores_using), monthly_avg, keyby=store_name]
))


DT.releases_percs <- reshape2::melt(DT.release_percs, id.vars="store_name", var="Time_Frame", value.name="perc_with_activity")
DT.releases_percs[, perc_with_activity := as.perc(perc_with_activity)]
P.releases <- ggBarchart2(DT.releases_percs, x="store_name", y="perc_with_activity", fill="Time_Frame") + percent.y(lim=c(0, .8)) + angledtext() + legendtop() + ggtitle("Percent of RELEASES with activity")
f.releases <- ggsave.out(P.releases)

DT.tracks_percs <- reshape2::melt(DT.track_percs, id.vars="store_name", var="Time_Frame", value.name="perc_with_activity")
DT.tracks_percs[, perc_with_activity := as.perc(perc_with_activity)]
P.tracks <- ggBarchart2(DT.tracks_percs, x="store_name", y="perc_with_activity", fill="Time_Frame") + percent.y(lim=c(0, .8)) + angledtext() + legendtop() + ggtitle("Percent of TRACKS with activity")
f.tracks <- ggsave.out(P.tracks)


.o(f.releases)
.o(f.tracks)




DT.tracks_percs[, var := "tracks"]
DT.releases_percs[, var := "releases"]
DT.percs <- rbind(DT.releases_percs, DT.tracks_percs)
DT.percs <- DT.percs[store_name %in% c("Spotify", "iTunes", "deezer", "YouTube")]
DT.percs[, Time_Frame := factor(Time_Frame, levels=c("perc_per_store_in_2014", "perc_per_store_in_2015", "monthly_avg"), labels=c("2014 Total", "2015 YTD", "Monthly Average"))]
DT.percs[, store_name := as.character(store_name)]
DT.percs[, label := fwp(perc_with_activity)]
DT.percs[, color:="grey"]
DT.percs[store_name=="Spotify", color:="green"]
DT.percs[store_name=="iTunes", color:="blue"]


size <- 3;  P.tracks_and_releases <- ggBarchart2(DT.percs, x="store_name", y="perc_with_activity", fill="var", legend_title_off=TRUE, title="Percent of all Orchard content streamed, by store", facet.x="Time_Frame", label="label", labelface="bold", label_text=size) + percent.y(lim=c(0, 0.8)) + angledtext(); P.tracks_and_releases
# P.tracks_and_releases <- ggBarchart2(DT.percs, x="store_name", y="perc_with_activity", fill="var", legend_title_off=TRUE, title="Percent of all Orchard content streamed, by store") + percent.y(lim=c(0, 0.8)) + angledtext()

f.tracks_and_releases <- ggsave.out(P.tracks_and_releases)
.o(f.tracks_and_releases)

