slowwild.proto 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  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. int64 tag_id = 1;
  181. int64 user_id = 2;
  182. }
  183. message GetTagRsp {
  184. string name = 1;
  185. int64 hot_num = 2;
  186. UserInfo user = 3;
  187. int64 id = 4;
  188. int64 created_on = 5;
  189. int64 post_count = 6;
  190. int64 follow_count = 7;
  191. bool is_followed = 8;
  192. }
  193. message GetPostListReq {
  194. int32 page = 1;
  195. int32 page_size = 2;
  196. int32 search_type = 3; // 0-默认搜索1-搜索内容/标题2-话题搜索
  197. int32 sort_type = 4; //0-默认创建时间排序1-热度排序
  198. string keyword = 5; // 搜索关键字,或者对应的id
  199. int64 user_id = 6; // 用户id
  200. }
  201. message GetPostListItem {
  202. int64 id = 1;
  203. UserInfo user = 2;
  204. string title = 3;
  205. string content_summary = 4;
  206. int32 post_type = 5; //帖子类型0-普通图文1-视频
  207. int64 comment_count = 6;
  208. int64 upvote_count = 7;
  209. int64 collection_count = 8;
  210. int64 share_count = 9;
  211. int32 visibillity = 10;
  212. string ip_loc = 11;
  213. int64 hot_num = 12;
  214. repeated string images = 13;
  215. string video_url = 14;
  216. string video_cover = 15;
  217. int64 created_on = 16;
  218. repeated TagItem tags = 17;
  219. bool is_liked = 18;
  220. bool is_collected = 19;
  221. bool is_mine = 20;
  222. }
  223. message GetPostListRsp {
  224. repeated GetPostListItem List = 1;
  225. int64 total = 2;
  226. }
  227. message GetPostReq {
  228. int64 user_id = 1;
  229. int64 post_id = 2;
  230. }
  231. message GetPostRsp {
  232. int64 id = 1;
  233. UserInfo user = 2;
  234. string title = 3;
  235. string content_summary = 4;
  236. int32 post_type = 5; //帖子类型0-普通图文1-视频
  237. int64 comment_count = 6;
  238. int64 upvote_count = 7;
  239. int64 collection_count = 8;
  240. int64 share_count = 9;
  241. int32 visibillity = 10;
  242. string ip_loc = 11;
  243. int64 hot_num = 12;
  244. repeated string images = 13;
  245. string video_url = 14;
  246. string video_cover = 15;
  247. string content = 16;
  248. int64 created_on = 17;
  249. repeated TagItem tags = 18;
  250. repeated UserInfo with_user = 19;
  251. int64 latest_replied_on = 20;
  252. bool is_liked = 21;
  253. bool is_collected = 22;
  254. bool is_mine = 23;
  255. }
  256. message PostUpvoteReq {
  257. int64 post_id = 1;
  258. int64 user_id = 2;
  259. }
  260. message PostUpvoteRsp {
  261. bool success = 1;
  262. }
  263. message PostCollectionReq {
  264. int64 post_id = 1;
  265. int64 user_id = 2;
  266. }
  267. message PostCollectionRsp {
  268. bool success = 1;
  269. }
  270. message PostShareReq {
  271. int64 post_id = 1;
  272. int64 user_id = 2;
  273. }
  274. message PostShareRsp {
  275. bool success = 1;
  276. }
  277. message PostCommentReq {
  278. int64 post_id = 1;
  279. int64 user_id = 2;
  280. string content = 3;
  281. string image = 4;
  282. int64 at_user_id = 5;
  283. string ip = 6;
  284. string ip_loc = 7;
  285. }
  286. message PostCommentRsp {
  287. int64 comment_id = 1;
  288. }
  289. message PostReplyReq {
  290. int64 post_id = 1;
  291. int64 user_id = 2;
  292. string content = 3;
  293. string image = 4;
  294. int64 at_user_id = 5;
  295. string ip = 6;
  296. string ip_loc = 7;
  297. }
  298. message PostReplyRsp {
  299. int64 reply_id = 1;
  300. }
  301. message GetPostCommentListReq {
  302. int32 page = 1;
  303. int32 page_size = 2;
  304. int64 post_id = 3;
  305. int64 user_id = 4;
  306. }
  307. message RepliesItem {
  308. int64 id = 1;
  309. int64 post_id = 2;
  310. UserInfo user = 3;
  311. string ip_loc = 4;
  312. string content = 5;
  313. string image = 6;
  314. repeated UserInfo with_user = 7;
  315. int64 upvote_count = 8;
  316. bool is_liked = 9;
  317. bool is_mine = 10;
  318. int64 created_on = 13;
  319. }
  320. message CommentItem {
  321. int64 id = 1;
  322. int64 post_id = 2;
  323. UserInfo user = 3;
  324. string ip_loc = 4;
  325. string content = 5;
  326. string image = 6;
  327. repeated UserInfo with_user = 7;
  328. int64 reply_count = 8;
  329. int64 upvote_count = 9;
  330. repeated RepliesItem reply_item = 10;
  331. bool is_liked = 11;
  332. bool is_mine = 12;
  333. int64 created_on = 13;
  334. }
  335. message GetPostCommentListRsp {
  336. repeated CommentItem list = 1;
  337. int64 total = 2;
  338. }
  339. message GetReplyListReq {
  340. int32 page = 1;
  341. int32 page_size = 2;
  342. int64 comment_id = 3;
  343. int64 user_id = 4;
  344. }
  345. message GetReplyListRsp {
  346. repeated RepliesItem list = 1;
  347. int64 total = 2;
  348. }
  349. message PostCommentUpvoteReq {
  350. int64 user_id = 1;
  351. int64 comment_id = 2;
  352. int32 comment_type = 3; // 0- 评论1-回复
  353. }
  354. message PostCommentUpvoteRsp {
  355. bool success = 1;
  356. }
  357. message PostCommentThumbsDownReq {
  358. int64 user_id = 1;
  359. int64 comment_id = 2;
  360. int32 comment_type = 3; // 0- 评论1-回复
  361. }
  362. message PostCommentThumbsDownRsp {
  363. bool success = 1;
  364. }
  365. message PostDeleteReq {
  366. int64 user_id = 1;
  367. int64 post_id = 2;
  368. }
  369. message PostDeleteRsp {
  370. bool success = 1;
  371. }
  372. service SlowWildServer {
  373. // 用户登录
  374. rpc Login(LoginReq) returns (LoginAndRegisterRsp);
  375. // 用户注册
  376. rpc Register(RegisterReq) returns (LoginAndRegisterRsp);
  377. // 获取用户信息
  378. rpc GetUserInfo(GetUserInfoReq) returns (GetUserInfoResp);
  379. // 查询用户信息
  380. rpc FindUser(FindUserReq) returns (FindUserResp);
  381. // 关注用户
  382. rpc UserFollow (FollowUserReq) returns (FollowUserRes);
  383. // 取消关注用户
  384. rpc UnUserFollow (UnFollowUserReq) returns (UnFollowUserRes);
  385. // 获取我得粉丝
  386. rpc GetFans (GetFollowingReq) returns (GetFollowingRes);
  387. // 查询我的关注
  388. rpc GetFollows (GetFollowingReq) returns (GetFollowingRes);
  389. // 查询用户的详细信息
  390. rpc GetUserProfile (GetUserProfileReq) returns (GetUserProfileRes);
  391. // 搜索用户名称
  392. rpc SearchUsername (SearchUsernameReq) returns (SearchUsernameRes);
  393. // 发布帖子
  394. rpc CreatePost (CreatePostReq) returns (CreatePostRsp);
  395. // 获取话题列表
  396. rpc GetTagList (GetTagListReq) returns (GetTagListRsp);
  397. // 获取话题详情
  398. rpc GetTag (GetTagReq) returns (GetTagRsp);
  399. // 获取帖子列表
  400. rpc GetPostList (GetPostListReq) returns (GetPostListRsp);
  401. // 获取帖子详情
  402. rpc GetPost (GetPostReq) returns (GetPostRsp);
  403. // 点赞帖子
  404. rpc PostUpvote (PostUpvoteReq) returns (PostUpvoteRsp);
  405. // 分享帖子
  406. rpc PostShare (PostShareReq) returns (PostShareRsp);
  407. // 收藏帖子
  408. rpc PostCollection (PostCollectionReq) returns (PostCollectionRsp);
  409. // 发布评论
  410. rpc PostComment (PostCommentReq) returns (PostCommentRsp);
  411. // 发布回复
  412. rpc PostReply (PostReplyReq) returns (PostReplyRsp);
  413. // 获取评论列表
  414. rpc GetPostCommentList (GetPostCommentListReq) returns (GetPostCommentListRsp);
  415. // 获取回复列表
  416. rpc GetReplyList (GetReplyListReq) returns (GetReplyListRsp);
  417. // 评论点赞
  418. rpc PostCommentUpvote (PostCommentUpvoteReq) returns (PostCommentUpvoteRsp);
  419. // 评论点踩
  420. rpc PostCommentThumbsDown (PostCommentThumbsDownReq) returns (PostCommentThumbsDownRsp);
  421. // 删除帖子
  422. rpc PostDelete (PostDeleteReq) returns (PostDeleteRsp);
  423. }