Room.proto 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. syntax = "proto3";
  2. package room.v2;
  3. option go_package = "v2";
  4. import "github.com/gogo/protobuf/gogoproto/gogo.proto";
  5. service Room {
  6. /** 根据房间id获取房间信息v2
  7. * 修正:原来的get_info_by_id 在传了fields字段但是不包含roomid的情况下 依然会返回所有字段, 新版修正这个问题, 只会返回指定的字段.
  8. */
  9. rpc get_by_ids (RoomGetByIdsReq) returns (RoomGetByIdsResp);
  10. /** 从uid得到room_id
  11. *
  12. */
  13. rpc room_id_by_uid (RoomRoomIdByUidReq) returns (RoomRoomIdByUidResp);
  14. /** 批量从uids得到room_ids
  15. *
  16. */
  17. rpc room_id_by_uid_multi (RoomRoomIdByUidMultiReq) returns (RoomRoomIdByUidMultiResp);
  18. /** 获取所有/分区在线房间id
  19. * 只能内部调用
  20. */
  21. rpc getOnlineRoomIds (RoomGetOnlineRoomIdsReq) returns (RoomGetOnlineRoomIdsResp);
  22. /** app房间页tab v2
  23. *
  24. */
  25. rpc mobileTab (RoomMobileTabReq) returns (RoomMobileTabResp);
  26. }
  27. message RoomGetByIdsReq {
  28. // 房间id, 尽可能传长号(支持短号,eg.短号1->长号40000,则返回的房间信息map key是40000)
  29. repeated int64 ids = 1 [(gogoproto.jsontag) = "ids"];
  30. // 是否需要附加uname、face字段,need_uinfo=1 尽量别传,传了请和@小卫报备!!
  31. int64 need_uinfo = 2 [(gogoproto.jsontag) = "need_uinfo"];
  32. // 是否需要broadcast_type字段,need_broadcast_type=1
  33. int64 need_broadcast_type = 3 [(gogoproto.jsontag) = "need_broadcast_type"];
  34. // 需要哪些字段, 不传默认给大多数字段
  35. repeated string fields = 4 [(gogoproto.jsontag) = "fields"];
  36. // 调用方来源,英文,格式约定:部门_服务_业务 eg.live_activity_spring
  37. string from = 5 [(gogoproto.jsontag) = "from"];
  38. }
  39. message RoomGetByIdsResp {
  40. // code
  41. int64 code = 1 [(gogoproto.jsontag) = "code"];
  42. // msg
  43. string msg = 2 [(gogoproto.jsontag) = "msg"];
  44. // 房间信息map
  45. map<int64, RoomInfo> data = 3 [(gogoproto.jsontag) = "data"];
  46. message RoomInfo {
  47. // 房间id
  48. int64 roomid = 1 [(gogoproto.jsontag) = "roomid"];
  49. // 用户名
  50. string uname = 2 [(gogoproto.jsontag) = "uname"];
  51. // 用户头像
  52. string face = 3 [(gogoproto.jsontag) = "face"];
  53. // 加v认证信息
  54. string verify = 4 [(gogoproto.jsontag) = "verify"];
  55. // 关键帧 注:need_uinfo=1时,该字段优先表示封面图
  56. string cover = 5 [(gogoproto.jsontag) = "cover"];
  57. // 用户id
  58. int64 uid = 6 [(gogoproto.jsontag) = "uid"];
  59. // 开播时间
  60. string live_time = 7 [(gogoproto.jsontag) = "live_time"];
  61. // 轮播投递状态 1开启 0关闭
  62. int64 round_status = 8 [(gogoproto.jsontag) = "round_status"];
  63. // 轮播开启状态 1开启 0关闭
  64. int64 on_flag = 9 [(gogoproto.jsontag) = "on_flag"];
  65. // 直播间标题
  66. string title = 10 [(gogoproto.jsontag) = "title"];
  67. // 直播间标签
  68. string tags = 11 [(gogoproto.jsontag) = "tags"];
  69. // 锁定到时间
  70. string lock_status = 12 [(gogoproto.jsontag) = "lock_status"];
  71. // 隐藏到时间
  72. string hidden_status = 13 [(gogoproto.jsontag) = "hidden_status"];
  73. // 封面
  74. string user_cover = 14 [(gogoproto.jsontag) = "user_cover"];
  75. // 短号
  76. int64 short_id = 15 [(gogoproto.jsontag) = "short_id"];
  77. // 在线人数
  78. int64 online = 16 [(gogoproto.jsontag) = "online"];
  79. // 分区id
  80. int64 area = 17 [(gogoproto.jsontag) = "area"];
  81. // 分区v2 id
  82. int64 area_v2_id = 18 [(gogoproto.jsontag) = "area_v2_id"];
  83. // 分区v2 父分区id
  84. int64 area_v2_parent_id = 19 [(gogoproto.jsontag) = "area_v2_parent_id"];
  85. // 分区是否开放pk 0关闭 1开放
  86. int64 area_pk_status = 20 [(gogoproto.jsontag) = "area_pk_status"];
  87. // 分区v2名字
  88. string area_v2_name = 21 [(gogoproto.jsontag) = "area_v2_name"];
  89. // 分区v2父分区名字
  90. string area_v2_parent_name = 22 [(gogoproto.jsontag) = "area_v2_parent_name"];
  91. // 关注人数
  92. int64 attentions = 23 [(gogoproto.jsontag) = "attentions"];
  93. // 房间背景图
  94. string background = 24 [(gogoproto.jsontag) = "background"];
  95. // 是否静默 0否,1注册会员,2全部
  96. int64 room_silent = 25 [(gogoproto.jsontag) = "room_silent"];
  97. // 是否使用房主的屏蔽用户,作为房间全局屏蔽用户,0:不使用,1:使用
  98. int64 room_shield = 26 [(gogoproto.jsontag) = "room_shield"];
  99. // 试用直播间到期时间
  100. string try_time = 27 [(gogoproto.jsontag) = "try_time"];
  101. // 直播间状态 0关播 1直播中 2轮播中
  102. int64 live_status = 28 [(gogoproto.jsontag) = "live_status"];
  103. // 横竖屏,只有传了need_broadcast_type才会返回 0横屏 1竖屏 -1异常情况
  104. int64 broadcast_type = 29 [(gogoproto.jsontag) = "broadcast_type"];
  105. //
  106. int64 virtual = 30 [(gogoproto.jsontag) = "virtual"];
  107. //
  108. string ctime = 31 [(gogoproto.jsontag) = "ctime"];
  109. //
  110. string mtime = 32 [(gogoproto.jsontag) = "mtime"];
  111. }
  112. }
  113. message RoomRoomIdByUidReq {
  114. // 用户uid
  115. int64 uid = 1 [(gogoproto.jsontag) = "uid"];
  116. }
  117. message RoomRoomIdByUidResp {
  118. // code
  119. int64 code = 1 [(gogoproto.jsontag) = "code"];
  120. // msg
  121. string msg = 2 [(gogoproto.jsontag) = "msg"];
  122. //
  123. Data data = 3 [(gogoproto.jsontag) = "data"];
  124. message Data {
  125. // room_id
  126. int64 room_id = 1 [(gogoproto.jsontag) = "room_id"];
  127. }
  128. }
  129. message RoomRoomIdByUidMultiReq {
  130. // 用户uids,单次请求数量限制:400
  131. repeated int64 uids = 1 [(gogoproto.jsontag) = "uids"];
  132. }
  133. message RoomRoomIdByUidMultiResp {
  134. // code
  135. int64 code = 1 [(gogoproto.jsontag) = "code"];
  136. // msg
  137. string msg = 2 [(gogoproto.jsontag) = "msg"];
  138. // 房间id map ['uid1' => roomid1, 'uid2' => roomid2]
  139. map<string, string> data = 3 [(gogoproto.jsontag) = "data"];
  140. }
  141. message RoomGetOnlineRoomIdsReq {
  142. // 父分区id,不传给所有
  143. int64 parent_area_id = 1 [(gogoproto.jsontag) = "parent_area_id"];
  144. // 二级分区id,不传给所有
  145. int64 area_id = 2 [(gogoproto.jsontag) = "area_id"];
  146. // 调用方来源 eg. live.lottery.xxx
  147. string from = 3 [(gogoproto.jsontag) = "from"];
  148. }
  149. message RoomGetOnlineRoomIdsResp {
  150. //
  151. string msg = 1 [(gogoproto.jsontag) = "msg"];
  152. //
  153. int64 code = 2 [(gogoproto.jsontag) = "code"];
  154. //
  155. Data data = 3 [(gogoproto.jsontag) = "data"];
  156. message Data {
  157. // roomid 逗号分隔的字符串
  158. string room_ids = 1 [(gogoproto.jsontag) = "room_ids"];
  159. }
  160. }
  161. message RoomMobileTabReq {
  162. // 房间号
  163. int64 roomid = 1 [(gogoproto.jsontag) = "roomid"];
  164. }
  165. message RoomMobileTabResp {
  166. // code
  167. int64 code = 1 [(gogoproto.jsontag) = "code"];
  168. // msg
  169. string msg = 2 [(gogoproto.jsontag) = "msg"];
  170. //
  171. repeated Data data = 3 [(gogoproto.jsontag) = "data"];
  172. message Grand {
  173. // tab类型
  174. string type = 1 [(gogoproto.jsontag) = "type"];
  175. // 中文标题
  176. string desc = 2 [(gogoproto.jsontag) = "desc"];
  177. // h5链接
  178. string url = 3 [(gogoproto.jsontag) = "url"];
  179. // 1展示0不展示
  180. int64 status = 4 [(gogoproto.jsontag) = "status"];
  181. // 排序,值越小越靠前
  182. int64 order = 5 [(gogoproto.jsontag) = "order"];
  183. // 文案
  184. string documents = 6 [(gogoproto.jsontag) = "documents"];
  185. // 名称
  186. string rank_name = 7 [(gogoproto.jsontag) = "rank_name"];
  187. }
  188. message Sub {
  189. // tab类型
  190. string type = 1 [(gogoproto.jsontag) = "type"];
  191. // 中文标题
  192. string desc = 2 [(gogoproto.jsontag) = "desc"];
  193. // h5链接
  194. string url = 3 [(gogoproto.jsontag) = "url"];
  195. // 1展示0不展示
  196. int64 status = 4 [(gogoproto.jsontag) = "status"];
  197. // 排序,值越小越靠前
  198. int64 order = 5 [(gogoproto.jsontag) = "order"];
  199. // 文案
  200. string documents = 6 [(gogoproto.jsontag) = "documents"];
  201. // 名称
  202. string rank_name = 7 [(gogoproto.jsontag) = "rank_name"];
  203. // 三级默认定位tab
  204. string default_sub_tab = 8 [(gogoproto.jsontag) = "default_sub_tab"];
  205. // 三级tab
  206. repeated Grand sub_tab = 9 [(gogoproto.jsontag) = "sub_tab"];
  207. }
  208. message Data {
  209. // tab类型
  210. string type = 1 [(gogoproto.jsontag) = "type"];
  211. // 中文标题
  212. string desc = 2 [(gogoproto.jsontag) = "desc"];
  213. // h5链接,用来区分native还是h5
  214. string url = 3 [(gogoproto.jsontag) = "url"];
  215. // 1展示0不展示
  216. int64 status = 4 [(gogoproto.jsontag) = "status"];
  217. // 排序,值越小越靠前
  218. int64 order = 5 [(gogoproto.jsontag) = "order"];
  219. // 1默认定位0不是
  220. int64 default = 6 [(gogoproto.jsontag) = "default"];
  221. // 二级默认定位tab
  222. string default_sub_tab = 7 [(gogoproto.jsontag) = "default_sub_tab"];
  223. // 二级tab
  224. repeated Sub sub_tab = 8 [(gogoproto.jsontag) = "sub_tab"];
  225. }
  226. }