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

message CStoreBrowse_GetDLCForApps_Request {
	optional .StoreBrowseContext context = 1;
	optional .CStorePageFilter store_page_filter = 2;
	repeated .StoreItemID appids = 3;
	optional uint64 steamid = 4;
}

message CStoreBrowse_GetDLCForApps_Response {
	repeated .CStoreBrowse_GetDLCForApps_Response_DLCData dlc_data = 1;
	repeated .CStoreBrowse_GetDLCForApps_Response_PlaytimeForApp playtime = 2;
}

message CStoreBrowse_GetDLCForApps_Response_DLCData {
	optional uint32 appid = 1;
	optional uint32 parentappid = 2;
	optional uint32 release_date = 3;
	optional bool coming_soon = 4;
	optional int64 price = 5;
	optional uint32 discount = 6;
	optional bool free = 7;
}

message CStoreBrowse_GetDLCForApps_Response_PlaytimeForApp {
	optional uint32 appid = 1;
	optional uint32 playtime = 2;
	optional uint32 last_played = 3;
}

message CStoreBrowse_GetStoreCategories_Request {
	optional string language = 1;
	optional int32 elanguage = 2 [default = -1];
}

message CStoreBrowse_GetStoreCategories_Response {
	repeated .CStoreBrowse_GetStoreCategories_Response_Category categories = 1;
}

message CStoreBrowse_GetStoreCategories_Response_Category {
	optional uint32 categoryid = 1;
	optional int32 type = 2 [(.description) = "enum"];
	optional string internal_name = 3;
	optional string display_name = 4;
	optional string image_url = 5;
	optional bool show_in_search = 6;
}

service StoreBrowse {
	rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response);
	rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response);
	rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response);
}

