slowwild.proto 12 KB

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