import "common_base.proto";

message CQuest_ActivateProfileModifierItem_Request {
	optional uint32 appid = 1;
	optional uint64 communityitemid = 2;
	optional bool activate = 3;
}

message CQuest_ActivateProfileModifierItem_Response {
}

message CQuest_CommunityItem {
	optional uint64 communityitemid = 1;
	optional uint32 item_type = 2;
	optional uint32 appid = 3;
	optional uint32 owner = 4;
	repeated .CQuest_CommunityItem_Attribute attributes = 5;
	optional bool used = 6;
	optional uint32 owner_origin = 7;
	optional int64 amount = 8;
}

message CQuest_CommunityItem_Attribute {
	optional uint32 attributeid = 1;
	optional uint64 value = 2;
}

message CQuest_GetCommunityInventory_Request {
	repeated uint32 filter_appids = 1;
}

message CQuest_GetCommunityInventory_Response {
	repeated .CQuest_CommunityItem items = 1;
}

message CQuest_GetCommunityItemDefinitions_Request {
	optional uint32 appid = 1;
	optional uint32 item_type = 3;
	optional string language = 4;
	optional uint64 broadcast_channel_id = 5;
	optional bool keyvalues_as_json = 6;
}

message CQuest_GetCommunityItemDefinitions_Response {
	repeated .CQuest_GetCommunityItemDefinitions_Response_ItemDefinition item_definitions = 1;
}

message CQuest_GetCommunityItemDefinitions_Response_ItemDefinition {
	optional uint32 item_type = 1;
	optional uint32 appid = 2;
	optional string item_name = 3;
	optional string item_title = 4;
	optional string item_description = 5;
	optional string item_image_small = 6;
	optional string item_image_large = 7;
	optional string item_key_values = 8;
	optional uint32 item_series = 9;
	optional uint32 item_class = 10;
	optional uint32 editor_accountid = 11;
	optional bool active = 12;
	optional string item_image_composed = 13;
	optional string item_image_composed_foil = 14;
	optional bool deleted = 15;
	optional uint32 item_last_changed = 16;
	optional uint64 broadcast_channel_id = 17;
	optional string item_movie_webm = 18;
	optional string item_movie_mp4 = 19;
	optional string item_movie_webm_small = 20;
	optional string item_movie_mp4_small = 21;
	optional string item_internal_name = 22;
}

message CQuest_GetNumTradingCardsEarned_Request {
	optional uint32 timestamp_start = 1 [default = 0];
	optional uint32 timestamp_end = 2 [default = 4294967295];
}

message CQuest_GetNumTradingCardsEarned_Response {
	optional uint32 num_trading_cards = 1;
}

message CQuest_SetVirtualItemRewardDefinition_Request {
	optional int32 eventid = 1 [(.description) = "enum"];
	repeated .CVirtualItemRewardDefinition itemsdefs = 2;
	optional int32 action = 3 [(.description) = "enum"];
}

message CQuest_SetVirtualItemRewardDefinition_Response {
}

message CQuest_VirtualItemRewardDefinition_Request {
	optional int32 eventid = 1 [(.description) = "enum"];
	optional bool include_inactive = 2;
}

message CQuest_VirtualItemRewardDefinition_Response {
	repeated .CVirtualItemRewardDefinition rewards = 1;
}

message CVirtualItemRewardDefinition {
	optional int32 eventid = 1 [(.description) = "enum"];
	optional uint32 item_bucket = 2;
	optional uint32 appid = 3;
	optional bool active = 4;
	optional uint32 rarity = 5;
	optional uint32 package_to_grant = 6;
	optional fixed64 game_item_id = 7;
	optional int32 community_item_class = 8;
	optional uint32 community_item_type = 9;
	optional uint32 loyalty_point_type = 10;
	optional int64 amount = 11;
	optional uint32 rtime_time_active = 12;
	optional uint32 loyalty_reward_defid = 13;
	optional uint32 user_badge_to_grant = 14;
	optional uint32 user_badge_level = 15;
	optional uint32 virtual_item_def_id = 16;
}

service Quest {
	// ePrivilege=1
	rpc ActivateProfileModifierItem (.CQuest_ActivateProfileModifierItem_Request) returns (.CQuest_ActivateProfileModifierItem_Response);
	// bConstMethod=true, ePrivilege=1
	rpc GetCommunityInventory (.CQuest_GetCommunityInventory_Request) returns (.CQuest_GetCommunityInventory_Response);
	// bConstMethod=true, ePrivilege=1, eWebAPIKeyRequirement=4
	rpc GetCommunityItemDefinitions (.CQuest_GetCommunityItemDefinitions_Request) returns (.CQuest_GetCommunityItemDefinitions_Response);
	// bConstMethod=true, ePrivilege=1
	rpc GetNumTradingCardsEarned (.CQuest_GetNumTradingCardsEarned_Request) returns (.CQuest_GetNumTradingCardsEarned_Response);
	// bConstMethod=true, ePrivilege=4
	rpc GetVirtualItemRewardDefinition (.CQuest_VirtualItemRewardDefinition_Request) returns (.CQuest_VirtualItemRewardDefinition_Response);
	// ePrivilege=4
	rpc SetVirtualItemRewardDefinition (.CQuest_SetVirtualItemRewardDefinition_Request) returns (.CQuest_SetVirtualItemRewardDefinition_Response);
}

