189 lines
8.6 KiB
Protocol Buffer
189 lines
8.6 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
||
import "google/protobuf/empty.proto";
|
||
|
||
package bbq.service.user.v1;
|
||
|
||
option go_package = "api";
|
||
option (gogoproto.goproto_getters_all) = false;
|
||
|
||
////////////////////////////////Relation Service/////////////////////////////////
|
||
message ListRelationUserInfoReq {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid"'];
|
||
int64 up_mid = 2 [(gogoproto.moretags)='form:"up_mid" validate:"required"'];
|
||
string cursor_prev = 3 [(gogoproto.moretags)='form:"cursor_prev"'];
|
||
string cursor_next = 4 [(gogoproto.moretags)='form:"cursor_next"'];
|
||
}
|
||
|
||
message ListUserInfoReply {
|
||
bool has_more = 1 [(gogoproto.jsontag) = "has_more"];
|
||
repeated UserInfo list = 2 [(gogoproto.jsontag) = "list,omitempty"];
|
||
}
|
||
|
||
message ListRelationReq {
|
||
int64 mid = 1[(gogoproto.moretags)='form:"mid" validate:"required"'];
|
||
}
|
||
message ListRelationReply {
|
||
repeated int64 list = 1 [(gogoproto.jsontag) = "list,omitempty"];
|
||
}
|
||
|
||
message ModifyRelationReq {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid" validate:"required"'];
|
||
int64 up_mid = 2 [(gogoproto.moretags)='form:"up_mid" validate:"required"'];
|
||
int32 action = 3 [(gogoproto.moretags)='form:"action" validate:"required"'];
|
||
}
|
||
message ModifyRelationReply {
|
||
int32 follow_state = 1 [(gogoproto.jsontag) = "follow_state", (gogoproto.casttype) = "int8"];
|
||
}
|
||
|
||
////////////////////////////////User Service/////////////////////////////////
|
||
message ListUserInfoReq {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid"'];
|
||
repeated int64 up_mid = 2 [(gogoproto.moretags)='form:"up_mid,omitempty" validate:"required"'];
|
||
// 是否需要用户信息数组,如区域、性别的字符串化
|
||
bool need_desc = 3 [(gogoproto.moretags)='form:"need_desc"'];
|
||
// 用户统计信息UserStat
|
||
bool need_stat = 4 [(gogoproto.moretags)='form:"need_stat"'];
|
||
// 用户关注信息是否需要
|
||
bool need_follow_state = 5 [(gogoproto.moretags)='form:"need_follow_state"'];
|
||
}
|
||
|
||
// 获取UserInfo的配置,默认是只有UserBase的
|
||
message ListUserInfoConf {
|
||
// 是否需要用户信息数组,如区域、性别的字符串化
|
||
bool need_desc = 1 [(gogoproto.moretags)='form:"need_desc"'];
|
||
// 用户统计信息UserStat
|
||
bool need_stat = 2 [(gogoproto.moretags)='form:"need_stat"'];
|
||
// 用户关注信息是否需要
|
||
bool need_follow_state = 3 [(gogoproto.moretags)='form:"need_follow_state"'];
|
||
}
|
||
|
||
message PhoneCheckReq {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid"'];
|
||
}
|
||
|
||
message PhoneCheckReply {
|
||
int32 tel_status = 2;// 0未绑定,1已绑定有效手机号
|
||
}
|
||
|
||
////////////////////////////////Like Service/////////////////////////////////
|
||
message LikeReq {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid" validate:"required"'];
|
||
int64 up_mid = 2 [(gogoproto.moretags)='form:"up_mid" validate:"required"'];
|
||
int64 opid = 3 [(gogoproto.moretags)='form:"opid" validate:"required"'];
|
||
}
|
||
message LikeReply {
|
||
int64 affected_num = 1; // 返回是否操作了数据库
|
||
}
|
||
|
||
message ListUserLikeReq {
|
||
// int64 mid = 1 [(gogoproto.moretags)='form:"mid"'];
|
||
int64 up_mid = 2 [(gogoproto.moretags)='form:"up_mid" validate:"required"'];
|
||
string cursor_prev = 3 [(gogoproto.moretags)='form:"cursor_prev"'];
|
||
string cursor_next = 4 [(gogoproto.moretags)='form:"cursor_next"'];
|
||
}
|
||
message LikeSv {
|
||
int64 svid = 1 [(gogoproto.jsontag) = "svid"];
|
||
string cursor_value = 2 [(gogoproto.jsontag) = "cursor_value"];
|
||
}
|
||
message ListUserLikeReply {
|
||
bool has_more = 1 [(gogoproto.jsontag) = "has_more"];
|
||
repeated LikeSv list = 2 [(gogoproto.jsontag) = "list,omitempty"];
|
||
}
|
||
message IsLikeReq {
|
||
int64 mid = 1[(gogoproto.moretags)='form:"mid"'];
|
||
repeated int64 svids = 2[(gogoproto.moretags)='form:"svids"'];
|
||
}
|
||
message IsLikeReply {
|
||
repeated int64 list = 1[(gogoproto.jsontag) = "has_more,omitempty"];
|
||
}
|
||
|
||
////////////////////////////////User Service/////////////////////////////////
|
||
service User {
|
||
rpc Login (UserBase) returns (UserBase);
|
||
rpc PhoneCheck (PhoneCheckReq) returns (PhoneCheckReply);
|
||
rpc UserEdit (UserBase) returns (.google.protobuf.Empty);
|
||
rpc ListUserInfo (ListUserInfoReq) returns (ListUserInfoReply);
|
||
|
||
/////////////like/////////////
|
||
rpc AddLike (LikeReq) returns (LikeReply);
|
||
rpc CancelLike (LikeReq) returns (LikeReply);
|
||
rpc ListUserLike(ListUserLikeReq) returns (ListUserLikeReply);
|
||
rpc IsLike(IsLikeReq) returns (IsLikeReply);
|
||
|
||
////////////Relation///////////
|
||
rpc ModifyRelation (ModifyRelationReq) returns (ModifyRelationReply);
|
||
// 返回UserInfo的列表,分页
|
||
rpc ListFollowUserInfo (ListRelationUserInfoReq) returns (ListUserInfoReply);
|
||
rpc ListFanUserInfo (ListRelationUserInfoReq) returns (ListUserInfoReply);
|
||
rpc ListBlackUserInfo (ListRelationUserInfoReq) returns (ListUserInfoReply);
|
||
// 仅仅返回全部mid列表,不包含UserInfo
|
||
rpc ListFollow (ListRelationReq) returns (ListRelationReply);
|
||
rpc ListBlack (ListRelationReq) returns (ListRelationReply);
|
||
}
|
||
|
||
|
||
////////////////////////////////UserInfo/////////////////////////////////
|
||
message UserBase {
|
||
int64 mid = 1 [(gogoproto.jsontag) = "mid", (gogoproto.moretags)='form:"mid"'];
|
||
string uname = 2 [(gogoproto.jsontag) = "uname", (gogoproto.moretags)='form:"uname"'];
|
||
string face = 3 [(gogoproto.jsontag) = "face", (gogoproto.moretags)='form:"face"'];
|
||
string birthday = 4 [(gogoproto.jsontag) = "birthday", (gogoproto.moretags)='form:"birthday"'];
|
||
int64 exp = 5 [(gogoproto.moretags)='form:"exp"'];
|
||
int64 level = 6 [(gogoproto.moretags)='form:"level"'];
|
||
int64 ctime = 7 [(gogoproto.casttype) = "go-common/library/time.Time"];
|
||
int64 mtime = 8 [(gogoproto.casttype) = "go-common/library/time.Time"];
|
||
int32 sex = 9 [(gogoproto.jsontag) = "sex", (gogoproto.moretags)='form:"sex"', (gogoproto.casttype) = "int8"];
|
||
int64 region = 10[(gogoproto.jsontag) = "region", (gogoproto.moretags)='form:"region"'];
|
||
string signature = 11[(gogoproto.jsontag) = "signature", (gogoproto.moretags)='form:"signature"'];
|
||
int32 user_type = 12[(gogoproto.jsontag) = "user_type", (gogoproto.casttype) = "int8"];
|
||
int32 complete_degree = 13[(gogoproto.jsontag) = "complete_degree", (gogoproto.casttype) = "int8"];
|
||
int32 new_tag = 14[(gogoproto.jsontag) = "new_tag", (gogoproto.moretags)='form:"new_tag"', (gogoproto.casttype) = "int8"]; // 是否是新注册用户
|
||
string region_name = 21 [(gogoproto.jsontag) = "region_name"];
|
||
repeated string user_desc = 22 [(gogoproto.jsontag) = "user_desc,omitempty"];
|
||
string face_uptime = 23 [(gogoproto.jsontag) = "face_uptime", (gogoproto.moretags)='form:"uptime"'];
|
||
}
|
||
|
||
message UserStat {
|
||
int64 sv = 1 [(gogoproto.jsontag) = "sv"];
|
||
int64 like = 2 [(gogoproto.jsontag) = "like"];
|
||
int64 liked = 3 [(gogoproto.jsontag) = "liked"];
|
||
int64 follow = 4 [(gogoproto.jsontag) = "follow"];
|
||
int64 fan = 5 [(gogoproto.jsontag) = "fan"];
|
||
int64 black = 6 [(gogoproto.jsontag) = "black"];
|
||
int64 view = 7 [(gogoproto.jsontag) = "view"];
|
||
}
|
||
|
||
message UserInfo {
|
||
UserBase user_base = 1 [(gogoproto.jsontag) = "user_base,omitempty"];
|
||
UserStat user_stat = 2 [(gogoproto.jsontag) = "user_stat,omitempty"];
|
||
int32 follow_state = 3 [(gogoproto.jsontag) = "follow_state", (gogoproto.casttype) = "int8"];
|
||
string cursor_value = 4 [(gogoproto.jsontag) = "cursor_value"];
|
||
}
|
||
|
||
message LocationItem {
|
||
int32 id = 1[(gogoproto.jsontag) = "id"];
|
||
int32 pid = 2[(gogoproto.jsontag) = "pid"];
|
||
string name = 3[(gogoproto.jsontag) = "name"];
|
||
repeated LocationItem child = 4[(gogoproto.jsontag) = "child,omitempty"];
|
||
}
|
||
|
||
message UserVideoView {
|
||
int64 mid = 1 [(gogoproto.moretags)='form:"mid"'];
|
||
int64 views = 2 [(gogoproto.moretags)='form:"views"'];
|
||
}
|
||
|
||
//message LocationAllReq {
|
||
// int64 version = 1[(gogoproto.moretags)='form:"version"'];
|
||
//}
|
||
//
|
||
//message LocationAllReply {
|
||
// bool need_update = 1[(gogoproto.jsontag) = "need_update"];
|
||
// repeated LocationItem list = 2 [(gogoproto.jsontag) = "list,omitempty"];
|
||
//}
|
||
//
|
||
//service Location {
|
||
// rpc LocationAll(LocationAllReq) returns (LocationAllReply);
|
||
//}
|