syntax = "proto3";

package bilibili.app.interface.v1;

option java_package = "bilibili.app.interfaces.v1";
option java_multiple_files = true;

// 搜索
service Search {
  // 获取搜索建议
  rpc Suggest3 (SuggestionResult3Req) returns (SuggestionResult3Reply);
  //
  rpc DefaultWords(DefaultWordsReq) returns (DefaultWordsReply);
}

//
service SearchTest {
  //
  rpc NotExist(SuggestionResult3Req) returns (SuggestionResult3Reply);
}

//
message DefaultWordsReply {
  //
  string trackid = 1;
  //
  string param = 2;
  //
  string show = 3;
  //
  string word = 4;
  //
  int64 show_front = 5;
  //
  string exp_str = 6;
  //
  string goto = 7;
  //
  string value = 8;
  //
  string uri = 9;
}

//
message NftFaceIcon {
  //
  int32 region_type = 1;
  //
  string icon = 2;
  //
  int32 show_status = 3;
}

//
message DefaultWordsReq {
  //
  int64 from = 1;
  //
  int64 login_event = 2;
  //
  int32 teenagers_mode = 3;
  //
  int32 lessons_mode = 4;
  //
  string tab = 5;
  //
  string event_id = 6;
  //
  string avid = 7;
  //
  string query = 8;
  //
  int64 an = 9;
  //
  int64 is_fresh = 10;
}

// 获取搜索建议-响应
message SuggestionResult3Reply {
  // 搜索追踪id
  string trackid = 1;
  // 搜索建议条目列表
  repeated ResultItem list = 2;
  // 搜索的abtest 实验信息
  string exp_str = 3;
}

// 获取搜索建议-请求
message SuggestionResult3Req {
  // 关键字
  string keyword = 1;
  // 是否语法高亮
  // 0:不显示 1:显示
  int32 highlight = 2;
  // 是否青少年模式
  // 1:开启青少年模式
  int32 teenagers_mode = 3;
}

// 搜索建议条目
message ResultItem {
  // 来源
  string from = 1;
  // 显示结果(语法高亮)
  string title = 2;
  // 搜索关键字
  string keyword = 3;
  // 序号
  int32 position = 4;
  // 图片
  string cover = 5;
  // 图片尺寸
  double cover_size = 6;
  // sug词类型
  string sug_type = 7;
  // 词条大类型
  int32 term_type = 8;
  // 跳转类型
  string goto = 9;
  // 跳转uri
  string uri = 10;
  // 认证信息
  OfficialVerify official_verify = 11;
  // 跳转参数
  string param = 12;
  // up主mid
  int64 mid = 13;
  // 粉丝数
  int32 fans = 14;
  // up主等级
  int32 level = 15;
  // up主稿件数
  int32 archives = 16;
  // 投稿时间
  int64 ptime = 17;
  // season类型名称
  string season_type_name = 18;
  // 地区
  string area = 19;
  // 作品风格
  string style = 20;
  // 描述信息
  string label = 21;
  // 评分
  double rating = 22;
  // 投票数
  int32 vote = 23;
  // 角标
  repeated ReasonStyle badges = 24;
  //
  string styles = 25;
  //
  int64 module_id = 26;
  //
  string live_link = 27;
  //
  int32 face_nft_new = 28;
  //
  NftFaceIcon nft_face_icon = 29;
}

// 认证信息
message OfficialVerify {
  // 认证类型
  // 127:未认证 0:个人 1:机构
  int32 type = 1;
  // 认证描述
  string desc = 2;
}

// 角标
message ReasonStyle {
  // 角标文案
  string text = 1;
  // 文案日间色值
  string text_color = 2;
  // 文案夜间色值
  string text_color_night = 3;
  // 背景日间色值
  string bg_color = 4;
  // 背景夜间色值
  string bg_color_night = 5;
  // 边框日间色值
  string border_color = 6;
  // 边框夜间色值
  string border_color_night = 7;
  // 角标样式
  // 1:填充模式 2:镂空模式
  int32 bg_style = 8;
}
