syntax = "proto2";
package im.oidb.cmd0x769;

// tencent/im/oidb/cmd0x769/Oidb_0x769.java

message CPU {
  optional string model = 1;
  optional uint32 cores = 2;
  optional uint32 frequency = 3;
}

message Camera {
  optional uint64 primary = 1;
  optional uint64 secondary = 2;
  optional bool flash = 3;
}

message Config {
  optional uint32 type = 1;
  optional uint32 version = 2;
  repeated string content_list = 3;
  optional string debug_msg = 4;
  repeated Content msg_content_list = 5;
}

message ConfigSeq {
  optional uint32 type = 1;
  optional uint32 version = 2;
}

message Content {
  optional uint32 task_id = 1;
  optional uint32 compress = 2;
  optional bytes content = 10;
}

message DeviceInfo {
  optional string brand = 1;
  optional string model = 2;
  optional OS os = 3;
  optional CPU cpu = 4;
  optional Memory memory = 5;
  optional Storage storage = 6;
  optional Screen screen = 7;
  optional Camera camera = 8;
}

message Memory {
  optional uint64 total = 1;
  optional uint64 process = 2;
}

message OS {
  optional uint32 type = 1;
  optional string version = 2;
  optional string sdk = 3;
  optional string kernel = 4;
  optional string rom = 5;
}

message QueryUinPackageUsageReq {
  optional uint32 type = 1;
  optional uint64 uin_file_size = 2;
}

message QueryUinPackageUsageRsp {
  optional uint32 status = 1;
  optional uint64 left_uin_num = 2;
  optional uint64 max_uin_num = 3;
  optional uint32 proportion = 4;
  repeated UinPackageUsedInfo uin_package_used_list = 10;
}

message ReqBody {
  repeated ConfigSeq config_list = 1;
  optional DeviceInfo device_info = 2;
  optional string info = 3;
  optional string province = 4;
  optional string city = 5;
  optional int32 req_debug_msg = 6;
  optional QueryUinPackageUsageReq query_uin_package_usage_req = 101;
}

message RspBody {
  optional uint32 result = 1;
  repeated Config config_list = 2;
  optional QueryUinPackageUsageRsp query_uin_package_usage_rsp = 101;
}

message Screen {
  optional string model = 1;
  optional uint32 width = 2;
  optional uint32 height = 3;
  optional uint32 dpi = 4;
  optional bool multi_touch = 5;
}

message Storage {
  optional uint64 builtin = 1;
  optional uint64 external = 2;
}

message UinPackageUsedInfo {
  optional uint32 rule_id = 1;
  optional string author = 2;
  optional string url = 3;
  optional uint64 uin_num = 4;
}
