github.com/Go-To-Byte/DouSheng/user_center@v0.0.0-20230524130918-ad531c1a3f6a/apps/user/pb/user.proto (about)

     1  syntax = "proto3";
     2  
     3  package dousheng.user;
     4  option go_package = "github.com/Go-To-Byte/DouSheng/user_center/apps/user";
     5  
     6  
     7  // 定义 user 模块的接口
     8  service Service {
     9    // 用户注册
    10    rpc Register(LoginAndRegisterRequest) returns(TokenResponse);
    11    // 用户登录
    12    rpc Login(LoginAndRegisterRequest) returns(TokenResponse);
    13    // 获取用户信息
    14    rpc UserInfo(UserInfoRequest) returns(UserInfoResponse);
    15    // 获取用户信息 map[userId] = User
    16    rpc UserMap(UserMapRequest) returns(UserMapResponse);
    17  }
    18  
    19  
    20  // 用户注册 & 登录 的接口请求 model
    21  message LoginAndRegisterRequest {
    22    // 用户名【注册的话,最长32个字符】
    23    // @gotags: json:"username" form:"username" binding:"required,max=32" validate:"required,max=32"
    24    string username = 1;
    25    // 密码
    26    // @gotags: json:"password" form:"password" binding:"required,max=32" validate:"required,max=32"
    27    string password = 2;
    28  }
    29  
    30  // 用户注册 & 登录 的接口响应 model
    31  message TokenResponse {
    32    // 用户ID
    33    // @gotags: json:"user_id"
    34    int64 user_id = 3;
    35    // 用户鉴权Token
    36    // @gotags: json:"token"
    37    string token = 4;
    38  }
    39  
    40  // 获取用户信息 的接口请求 model
    41  message UserInfoRequest {
    42    // 用户ID
    43    // @gotags: json:"user_id" form:"user_id" validate:"required" binding:"required"
    44    int64 user_id = 1;
    45    // 用户鉴权Token [注:这里用 validate,是因为内部方法也必须要用到 Token,并不是所有 token 都 validate]
    46    // @gotags: json:"token" form:"token" binding:"required" validate:"required"
    47    string token = 2;
    48  }
    49  
    50  // 获取用户信息 的接口响应 model
    51  message UserInfoResponse {
    52    // 用户信息
    53    // @gotags: json:"user"
    54    User user = 3;
    55  }
    56  
    57  // 调用用户信息 时返回的User
    58  message User {
    59    // @gotags: json:"id"
    60    int64 id = 1; // 用户id
    61    // @gotags: json:"name"
    62    string name = 2; // 用户名称
    63    // @gotags: json:"follow_count"
    64    optional int64 follow_count = 3; // 关注总数
    65    // @gotags: json:"follower_count"
    66    optional int64 follower_count = 4; // 粉丝总数
    67    // @gotags: json:"is_follow"
    68    bool is_follow = 5; // true-已关注,false-未关
    69    // @gotags: json:"avatar"
    70    optional string avatar = 6; //用户头像
    71    // @gotags: json:"background_image"
    72    optional string background_image = 7; //用户个人页顶部大图
    73    // @gotags: json:"signature"
    74    optional string signature = 8; //个人简介
    75    // @gotags: json:"total_favorited"
    76    optional int64 total_favorited = 9; //获赞数量
    77    // @gotags: json:"work_count"
    78    optional int64 work_count = 10; //作品数
    79    // @gotags: json:"favorite_count"
    80    optional int64 favorite_count = 11; //点赞数量
    81  }
    82  
    83  // 与数据库对应的 PO 对象
    84  message UserPo {
    85    // 用户ID
    86    // @gotags: json:"id" gorm:"id"
    87    int64 id = 1;
    88    // 用户名称
    89    // @gotags: json:"username" gorm:"username"
    90    string username = 2;
    91    // 用户名称
    92    // @gotags: json:"password" gorm:"password"
    93    string password = 3;
    94  }
    95  
    96  // 用户IDs
    97  message UserMapRequest {
    98    // 用户ID 列表
    99    // @gotags: json:"user_ids"
   100    repeated int64 user_ids = 1;
   101    // 用户鉴权Token [注:这里用 validate,是因为内部方法也必须要用到 Token,并不是所有 token 都 validate]
   102    // @gotags: json:"token" validate:"required"
   103    string token = 2;
   104  }
   105  
   106  // 用户列表:map[userId] = User
   107  message UserMapResponse {
   108    // 用户列表:map[userId] = User
   109    // @gotags: json:"user_map"
   110    map<int64, User> user_map = 1;
   111  }