import "common_base.proto";

message CSteamAwards_GetNominationRecommendations_Request {
	optional uint32 category_id = 1;
}

message CSteamAwards_GetNominationRecommendations_Response {
	repeated .CSteamAwards_GetNominationRecommendations_Response_PlayedApps played_app = 1;
	repeated .CSteamAwards_GetNominationRecommendations_Response_SuggestedEvent suggested_events = 2;
	repeated .CSteamAwards_GetNominationRecommendations_Response_SuggestedApp suggested_apps = 3;
	optional string debug_query = 4;
}

message CSteamAwards_GetNominationRecommendations_Response_PlayedApps {
	optional uint32 appid = 1;
	optional int32 playtime = 2;
}

message CSteamAwards_GetNominationRecommendations_Response_SuggestedApp {
	optional uint32 appid = 1;
}

message CSteamAwards_GetNominationRecommendations_Response_SuggestedEvent {
	optional uint32 clanid = 1;
	optional uint64 event_gid = 2;
	optional uint32 appid = 3;
}

message CSteamAwards_GetNominationShareLink_Request {
	optional bool generate_new = 1;
}

message CSteamAwards_GetNominationShareLink_Response {
	optional fixed64 code = 1;
}

message CSteamAwards_GetOtherUserNominations_Request {
	optional fixed64 steamid = 1;
	optional fixed64 code = 2;
}

message CSteamAwards_GetUserNominations_Request {
}

message CSteamAwards_GetUserNominations_Response {
	repeated .CSteamAwardsNomination nominations = 1;
}

message CSteamAwards_Nominate_Request {
	optional uint32 category_id = 1;
	optional uint32 nominated_id = 2;
	optional int32 source = 3 [(.description) = "enum"];
}

message CSteamAwards_Nominate_Response {
	repeated .CSteamAwardsNomination nominations = 1;
}

message CSteamAwardsNomination {
	optional uint32 category_id = 1;
	optional uint32 appid = 2;
	optional uint32 last_updated = 3;
}

service SteamAwards {
	// bConstMethod=true, ePrivilege=1
	rpc GetNominationRecommendations (.CSteamAwards_GetNominationRecommendations_Request) returns (.CSteamAwards_GetNominationRecommendations_Response);
	// ePrivilege=1
	rpc GetNominationShareLink (.CSteamAwards_GetNominationShareLink_Request) returns (.CSteamAwards_GetNominationShareLink_Response);
	// bConstMethod=true, ePrivilege=2
	rpc GetOtherUserNominations (.CSteamAwards_GetOtherUserNominations_Request) returns (.CSteamAwards_GetUserNominations_Response);
	// bConstMethod=true, ePrivilege=1
	rpc GetUserNominations (.CSteamAwards_GetUserNominations_Request) returns (.CSteamAwards_GetUserNominations_Response);
	// bConstMethod=true, ePrivilege=1
	rpc Nominate (.CSteamAwards_Nominate_Request) returns (.CSteamAwards_Nominate_Response);
}

