slowwild.proto 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. syntax="proto3";
  2. package slowwildserver;
  3. option go_package="slowwild/slowwildserver";
  4. message UserEntity {
  5. int64 id = 1; // 用户id
  6. string avatar = 2; // 用户头像
  7. string nickname = 3; // 昵称
  8. string username = 4; // 用户名(唯一)
  9. string phone = 5; // 手机号码
  10. int32 status = 6; // 是否锁住1-正常2-停用
  11. int32 sex = 7; // 性别0-女1-男
  12. int64 follows = 8; //粉丝
  13. int64 followings = 9; // 关注量
  14. int32 get_likes_count = 10; //获得点赞数量
  15. int32 get_collection_count = 11; //获得收藏的数量
  16. }
  17. message UserInfo {
  18. int64 id = 1; // 用户id
  19. string avatar = 2; // 用户头像
  20. string nickname = 3; // 昵称
  21. int32 sex = 7; // 性别0-女1-男
  22. }
  23. message FollowUserInfo {
  24. UserInfo user = 1;
  25. bool is_mutual_follow = 2; // 是否互相关注
  26. }
  27. message LoginAndRegisterRsp {
  28. string token = 1; // token令牌
  29. int64 expire = 2; // 到期时间
  30. }
  31. message LoginReq {
  32. string phone = 1; //手机号
  33. string password = 2; // 密码
  34. string code = 3; //验证码
  35. int32 login_type = 4; // 登录类型
  36. string login_ip = 5; // 登录ip
  37. }
  38. message RegisterReq{
  39. string phone = 1; // 手机号码
  40. string nickname = 2; // 用户昵称
  41. string password = 3; // 密码
  42. string avatar = 4; // 头像
  43. int32 sex = 5; // 性别
  44. string username = 6; // 用户名(唯一)
  45. string code = 7; //验证码
  46. }
  47. message GetUserInfoReq {
  48. int64 user_id = 1; // 用户id
  49. int64 query_user_id = 2; // 查询用户id
  50. }
  51. message GetUserInfoResp {
  52. int64 id = 1; // 用户id
  53. string avatar = 2; // 用户头像
  54. string nickname = 3; // 昵称
  55. int32 sex = 4; // 性别0-女1-男
  56. bool is_follow = 5; // 是否关注
  57. }
  58. message FindUserReq {
  59. string username = 1; // 用户昵称
  60. string phone = 2; // 用户手机号码
  61. repeated int64 ids = 3; // 用户id
  62. }
  63. message FindUserResp {
  64. repeated UserInfo user_list = 1; // 用户信息
  65. }
  66. // 用户关注
  67. message FollowUserReq {
  68. int64 user_id = 1; // 当前登录用户id
  69. int64 follow_user_id = 2; // 被关注的用户id
  70. }
  71. message FollowUserRes {
  72. bool success = 1; // 是否关注成功
  73. }
  74. // 用户取消关注
  75. message UnFollowUserReq {
  76. int64 user_id = 1; // 当前登录的用户id
  77. int64 un_follow_user_id = 2; // 当前被取消关注的用户id
  78. }
  79. message UnFollowUserRes {
  80. bool success = 1; // 是否关注成功
  81. }
  82. // 查询粉丝列表
  83. message GetFollowingReq {
  84. int64 user_id = 1; // 当前登录用户的id
  85. int32 page_size = 2; // 数量限制
  86. int32 page = 3; // 分页开始偏移量
  87. int64 query_user_id = 4; // 查询用户的id
  88. }
  89. message GetFollowingRes {
  90. repeated FollowUserInfo list = 1;
  91. int64 total = 2;
  92. }
  93. // 查询我关注的列表
  94. message GetFollowReq {
  95. int64 user_id = 1; // 当前登录用户的id
  96. int32 page_size = 2; // 数量限制
  97. int32 page = 3; // 分页开始偏移量
  98. int64 query_user_id = 4; // 查询用户的id
  99. }
  100. message GetFollowRes {
  101. repeated FollowUserInfo list = 1;
  102. int64 total = 2;
  103. }
  104. //查询用户信息
  105. message GetUserProfileReq {
  106. int64 user_id = 1;
  107. }
  108. message GetUserProfileRes {
  109. int64 id = 1; // 用户id
  110. string nickname = 2; // 用户昵称
  111. string username = 3; // 用户名
  112. int32 status = 4; // 用户状态0-正常1-封禁中2-禁言中3-删除
  113. string avatar = 5; // 头像
  114. string phone = 6; // 手机号
  115. int32 tweet_count = 7; //帖子数
  116. bool is_following = 8; // 是否关注
  117. int64 created_on = 9; // 注册时间
  118. int64 follows = 10; // 关注数
  119. int64 fans = 11; // 粉丝数
  120. int32 get_likes_count = 12; //获得点赞数量
  121. int32 get_collection_count = 13; //获得收藏的数量
  122. int32 sex = 14; //1-男2-女
  123. }
  124. // 模糊查询用户
  125. message SearchUsernameReq {
  126. string keyword = 1;
  127. int32 page = 2;
  128. int32 page_size = 3;
  129. int64 user_id = 4;
  130. }
  131. message SearchUsernameItem {
  132. string nickname = 1;
  133. string avatar = 2;
  134. int64 id = 3;
  135. int32 sex = 4;
  136. bool is_follow = 5;
  137. }
  138. message SearchUsernameRes {
  139. repeated SearchUsernameItem list = 1;
  140. int64 total = 2;
  141. }
  142. message CreateTag {
  143. string name = 1;
  144. int64 id = 2;
  145. }
  146. message CreatePostReq {
  147. int64 user_id = 1;
  148. string title = 2;
  149. string content = 3;
  150. repeated CreateTag tags = 4;
  151. repeated int64 at_user_ids = 5;
  152. int32 type = 6; //0-图文1-视频
  153. int32 visibility = 7; //可见性: 0私密 1好友可见 2关注可见 4公开
  154. repeated string images = 8;
  155. string video_cover = 9;
  156. string video_url = 10;
  157. string ip = 11;
  158. string ip_loc = 12;
  159. }
  160. message CreatePostRsp {
  161. int64 post_id = 1;
  162. }
  163. message GetTagListReq {
  164. int32 page = 1;
  165. int32 page_size = 2;
  166. string tag_name = 3;
  167. }
  168. message TagItem {
  169. string name = 1;
  170. int64 hot_num = 2;
  171. UserInfo user = 3;
  172. int64 id = 4;
  173. int64 created_on = 5;
  174. }
  175. message GetTagListRsp {
  176. repeated TagItem tag_list = 1;
  177. int32 total = 2;
  178. }
  179. message GetTagReq {
  180. int32 tag_id = 1;
  181. }
  182. message GetTagRsp {
  183. TagItem info = 1;
  184. }
  185. message GetPostListReq {
  186. int32 page = 1;
  187. int32 page_size = 2;
  188. int32 search_type = 3; // 0-默认搜索1-搜索内容/标题2-话题搜索
  189. int32 sort_type = 4; //0-默认创建时间排序1-热度排序
  190. int32 keyword = 5; // 搜索关键字,或者对应的id
  191. int64 user_id = 6; // 用户id
  192. }
  193. message GetPostListItem {
  194. int64 id = 1;
  195. UserInfo user = 2;
  196. string title = 3;
  197. string content_summary = 4;
  198. int32 post_type = 5; //帖子类型0-普通图文1-视频
  199. int64 comment_count = 6;
  200. int64 upvote_count = 7;
  201. int64 collection_count = 8;
  202. int64 share_count = 9;
  203. int32 visibillity = 10;
  204. string ip_loc = 11;
  205. int64 hot_num = 12;
  206. repeated string images = 13;
  207. string video_url = 14;
  208. string video_cover = 15;
  209. int64 created_on = 16;
  210. repeated TagItem tags = 17;
  211. }
  212. message GetPostListRsp {
  213. repeated GetPostListItem List = 1;
  214. int64 total = 2;
  215. }
  216. message GetPostReq {
  217. int64 user_id = 1;
  218. int64 post_id = 2;
  219. }
  220. message GetPostRsp {
  221. int64 id = 1;
  222. UserInfo user = 2;
  223. string title = 3;
  224. string content_summary = 4;
  225. int32 post_type = 5; //帖子类型0-普通图文1-视频
  226. int64 comment_count = 6;
  227. int64 upvote_count = 7;
  228. int64 collection_count = 8;
  229. int64 share_count = 9;
  230. int32 visibillity = 10;
  231. string ip_loc = 11;
  232. int64 hot_num = 12;
  233. repeated string images = 13;
  234. string video_url = 14;
  235. string video_cover = 15;
  236. string content = 16;
  237. int64 created_on = 17;
  238. repeated TagItem tags = 18;
  239. repeated UserInfo with_user = 19;
  240. int64 latest_replied_on = 20;
  241. }
  242. message PostUpvoteReq {
  243. int64 post_id = 1;
  244. int64 user_id = 2;
  245. }
  246. message PostUpvoteRsp {
  247. bool success = 1;
  248. }
  249. message PostCollectionReq {
  250. int64 post_id = 1;
  251. int64 user_id = 2;
  252. }
  253. message PostCollectionRsp {
  254. bool success = 1;
  255. }
  256. message PostShareReq {
  257. int64 post_id = 1;
  258. int64 user_id = 2;
  259. }
  260. message PostShareRsp {
  261. bool success = 1;
  262. }
  263. message PostCommentReq {
  264. int64 post_id = 1;
  265. int64 user_id = 2;
  266. string content = 3;
  267. string image = 4;
  268. int64 at_user_id = 5;
  269. string ip = 6;
  270. string ip_loc = 7;
  271. }
  272. message PostCommentRsp {
  273. int64 comment_id = 1;
  274. }
  275. message PostReplyReq {
  276. int64 post_id = 1;
  277. int64 user_id = 2;
  278. string content = 3;
  279. string image = 4;
  280. int64 at_user_id = 5;
  281. string ip = 6;
  282. string ip_loc = 7;
  283. }
  284. message PostReplyRsp {
  285. int64 reply_id = 1;
  286. }
  287. message GetPostCommentListReq {
  288. int32 page = 1;
  289. int32 page_size = 2;
  290. int64 post_id = 3;
  291. int64 user_id = 4;
  292. }
  293. message RepliesItem {
  294. int64 id = 1;
  295. int64 post_id = 2;
  296. UserInfo user = 3;
  297. string ip_loc = 4;
  298. string content = 5;
  299. string image = 6;
  300. repeated UserInfo with_user = 7;
  301. int64 upvote_count = 8;
  302. }
  303. message CommentItem {
  304. int64 id = 1;
  305. int64 post_id = 2;
  306. UserInfo user = 3;
  307. string ip_loc = 4;
  308. string content = 5;
  309. string image = 6;
  310. repeated UserInfo with_user = 7;
  311. int64 reply_count = 8;
  312. int64 upvote_count = 9;
  313. repeated RepliesItem reply_item = 10;
  314. }
  315. message GetPostCommentListRsp {
  316. repeated CommentItem list = 1;
  317. int64 total = 2;
  318. }
  319. message GetReplyListReq {
  320. int32 page = 1;
  321. int32 page_size = 2;
  322. int64 comment_id = 3;
  323. int64 user_id = 4;
  324. }
  325. message GetReplyListRsp {
  326. repeated RepliesItem list = 1;
  327. int64 total = 2;
  328. }
  329. message PostCommentUpvoteReq {
  330. int64 user_id = 1;
  331. int64 comment_id = 2;
  332. int32 comment_type = 3; // 0- 评论1-回复
  333. }
  334. message PostCommentUpvoteRsp {
  335. bool success = 1;
  336. }
  337. message PostCommentThumbsDownReq {
  338. int64 user_id = 1;
  339. int64 comment_id = 2;
  340. int32 comment_type = 3; // 0- 评论1-回复
  341. }
  342. message PostCommentThumbsDownRsp {
  343. bool success = 1;
  344. }
  345. message PostDeleteReq {
  346. int64 user_id = 1;
  347. int64 post_id = 2;
  348. }
  349. message PostDeleteRsp {
  350. bool success = 1;
  351. }
  352. service SlowWildServer {
  353. // 用户登录
  354. rpc Login(LoginReq) returns (LoginAndRegisterRsp);
  355. // 用户注册
  356. rpc Register(RegisterReq) returns (LoginAndRegisterRsp);
  357. // 获取用户信息
  358. rpc GetUserInfo(GetUserInfoReq) returns (GetUserInfoResp);
  359. // 查询用户信息
  360. rpc FindUser(FindUserReq) returns (FindUserResp);
  361. // 关注用户
  362. rpc UserFollow (FollowUserReq) returns (FollowUserRes);
  363. // 取消关注用户
  364. rpc UnUserFollow (UnFollowUserReq) returns (UnFollowUserRes);
  365. // 获取我得粉丝
  366. rpc GetFans (GetFollowingReq) returns (GetFollowingRes);
  367. // 查询我的关注
  368. rpc GetFollows (GetFollowingReq) returns (GetFollowingRes);
  369. // 查询用户的详细信息
  370. rpc GetUserProfile (GetUserProfileReq) returns (GetUserProfileRes);
  371. // 搜索用户名称
  372. rpc SearchUsername (SearchUsernameReq) returns (SearchUsernameRes);
  373. // 发布帖子
  374. rpc CreatePost (CreatePostReq) returns (CreatePostRsp);
  375. // 获取话题列表
  376. rpc GetTagList (GetTagListReq) returns (GetTagListRsp);
  377. // 获取话题详情
  378. rpc GetTag (GetTagReq) returns (GetTagRsp);
  379. // 获取帖子列表
  380. rpc GetPostList (GetPostListReq) returns (GetPostListRsp);
  381. // 获取帖子详情
  382. rpc GetPost (GetPostReq) returns (GetPostRsp);
  383. // 点赞帖子
  384. rpc PostUpvote (PostUpvoteReq) returns (PostUpvoteRsp);
  385. // 分享帖子
  386. rpc PostShare (PostShareReq) returns (PostShareRsp);
  387. // 收藏帖子
  388. rpc PostCollection (PostCollectionReq) returns (PostCollectionRsp);
  389. // 发布评论
  390. rpc PostComment (PostCommentReq) returns (PostCommentRsp);
  391. // 发布回复
  392. rpc PostReply (PostReplyReq) returns (PostReplyRsp);
  393. // 获取评论列表
  394. rpc GetPostCommentList (GetPostCommentListReq) returns (GetPostCommentListRsp);
  395. // 获取回复列表
  396. rpc GetReplyList (GetReplyListReq) returns (GetReplyListRsp);
  397. // 评论点赞
  398. rpc PostCommentUpvote (PostCommentUpvoteReq) returns (PostCommentUpvoteRsp);
  399. // 评论点踩
  400. rpc PostCommentThumbsDown (PostCommentThumbsDownReq) returns (PostCommentThumbsDownRsp);
  401. // 删除帖子
  402. rpc PostDelete (PostDeleteReq) returns (PostDeleteRsp);
  403. }