import "common_base.proto";
import "common.proto";

message CSteamCharts_GetGamesByConcurrentPlayers_Response {
	optional uint32 last_update = 1;
	repeated .CSteamCharts_GetGamesByConcurrentPlayers_Response_MostPlayedRank ranks = 2;
}

message CSteamCharts_GetGamesByConcurrentPlayers_Response_MostPlayedRank {
	optional int32 rank = 1;
	optional uint32 appid = 2;
	optional .StoreItem item = 3;
	optional uint32 concurrent_in_game = 4;
	optional uint32 peak_in_game = 5;
}

message CSteamCharts_GetMostPlayedGames_Request {
	optional .StoreBrowseContext context = 1;
	optional .StoreBrowseItemDataRequest data_request = 2;
}

message CSteamCharts_GetMostPlayedGames_Response {
	optional uint32 rollup_date = 1;
	repeated .CSteamCharts_GetMostPlayedGames_Response_MostPlayedRank ranks = 2;
}

message CSteamCharts_GetMostPlayedGames_Response_MostPlayedRank {
	optional int32 rank = 1;
	optional uint32 appid = 2;
	optional .StoreItem item = 3;
	optional int32 last_week_rank = 4;
	optional uint32 peak_in_game = 5;
	optional uint32 daily_active_players = 6;
}

message CSteamCharts_GetTopReleasesPages_Request {
}

message CSteamCharts_GetTopReleasesPages_Response {
	repeated .CSteamCharts_GetTopReleasesPages_Response_TopReleasesPage pages = 1;
}

message CSteamCharts_GetTopReleasesPages_Response_TopReleasesPage {
	optional string name = 1;
	optional uint32 start_of_month = 2;
	optional string url_path = 3;
	repeated .StoreItemID item_ids = 4;
}

service SteamCharts {
	rpc GetGamesByConcurrentPlayers (.NotImplemented) returns (.CSteamCharts_GetGamesByConcurrentPlayers_Response);
	rpc GetMostPlayedGames (.CSteamCharts_GetMostPlayedGames_Request) returns (.CSteamCharts_GetMostPlayedGames_Response);
	rpc GetTopReleasesPages (.CSteamCharts_GetTopReleasesPages_Request) returns (.CSteamCharts_GetTopReleasesPages_Response);
}

