147 lines
4.2 KiB
Protocol Buffer
147 lines
4.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package hyapp.user.v1;
|
|
|
|
option go_package = "hyapp/api/proto/user/v1;userv1";
|
|
|
|
// RequestMeta 是 user-service 所有内部 RPC 的最小追踪元信息。
|
|
message RequestMeta {
|
|
string request_id = 1;
|
|
string caller = 2;
|
|
string gateway_node_id = 3;
|
|
int64 sent_at_ms = 4;
|
|
string device_id = 5;
|
|
string client_ip = 6;
|
|
string user_agent = 7;
|
|
}
|
|
|
|
// UserStatus 表达用户主状态,业务服务只消费稳定枚举。
|
|
enum UserStatus {
|
|
USER_STATUS_UNSPECIFIED = 0;
|
|
USER_STATUS_ACTIVE = 1;
|
|
USER_STATUS_DISABLED = 2;
|
|
USER_STATUS_BANNED = 3;
|
|
}
|
|
|
|
// User 是首版用户主数据投影,不包含头像昵称等资料体系。
|
|
message User {
|
|
int64 user_id = 1;
|
|
UserStatus status = 2;
|
|
int64 created_at_ms = 3;
|
|
int64 updated_at_ms = 4;
|
|
string display_user_id = 5;
|
|
string default_display_user_id = 6;
|
|
string display_user_id_kind = 7;
|
|
int64 display_user_id_expires_at_ms = 8;
|
|
}
|
|
|
|
// GetUserRequest 查询单个用户主状态。
|
|
message GetUserRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
}
|
|
|
|
// GetUserResponse 返回单个用户主状态。
|
|
message GetUserResponse {
|
|
User user = 1;
|
|
}
|
|
|
|
// BatchGetUsersRequest 批量查询用户主状态。
|
|
message BatchGetUsersRequest {
|
|
RequestMeta meta = 1;
|
|
repeated int64 user_ids = 2;
|
|
}
|
|
|
|
// BatchGetUsersResponse 返回按 user_id 索引的用户主状态。
|
|
message BatchGetUsersResponse {
|
|
map<int64, User> users = 1;
|
|
}
|
|
|
|
// UserIdentity 是 user_id 和当前 active display_user_id 的绑定投影。
|
|
message UserIdentity {
|
|
int64 user_id = 1;
|
|
string display_user_id = 2;
|
|
string status = 3;
|
|
string default_display_user_id = 4;
|
|
string display_user_id_kind = 5;
|
|
int64 display_user_id_expires_at_ms = 6;
|
|
}
|
|
|
|
// GetUserIdentityRequest 按 user_id 查询当前短号。
|
|
message GetUserIdentityRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
}
|
|
|
|
// GetUserIdentityResponse 返回当前短号绑定。
|
|
message GetUserIdentityResponse {
|
|
UserIdentity identity = 1;
|
|
}
|
|
|
|
// ResolveDisplayUserIDRequest 把客户端展示短号解析成系统 user_id。
|
|
message ResolveDisplayUserIDRequest {
|
|
RequestMeta meta = 1;
|
|
string display_user_id = 2;
|
|
}
|
|
|
|
// ResolveDisplayUserIDResponse 返回 active 短号归属。
|
|
message ResolveDisplayUserIDResponse {
|
|
UserIdentity identity = 1;
|
|
}
|
|
|
|
// ChangeDisplayUserIDRequest 修改用户短号,必须由 user-service 保证事务一致。
|
|
message ChangeDisplayUserIDRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
string new_display_user_id = 3;
|
|
string reason = 4;
|
|
int64 operator_user_id = 5;
|
|
}
|
|
|
|
// ChangeDisplayUserIDResponse 返回修改后的 active 绑定。
|
|
message ChangeDisplayUserIDResponse {
|
|
UserIdentity identity = 1;
|
|
}
|
|
|
|
// ApplyPrettyDisplayUserIDRequest 申请临时靓号并覆盖当前展示号。
|
|
message ApplyPrettyDisplayUserIDRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
string pretty_display_user_id = 3;
|
|
int64 lease_duration_ms = 4;
|
|
string payment_receipt_id = 5;
|
|
}
|
|
|
|
// ApplyPrettyDisplayUserIDResponse 返回申请成功后的当前展示号和租约。
|
|
message ApplyPrettyDisplayUserIDResponse {
|
|
UserIdentity identity = 1;
|
|
string lease_id = 2;
|
|
}
|
|
|
|
// ExpirePrettyDisplayUserIDRequest 主动触发靓号过期恢复。
|
|
message ExpirePrettyDisplayUserIDRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
string lease_id = 3;
|
|
}
|
|
|
|
// ExpirePrettyDisplayUserIDResponse 返回恢复后的默认短号身份。
|
|
message ExpirePrettyDisplayUserIDResponse {
|
|
UserIdentity identity = 1;
|
|
}
|
|
|
|
// UserService 首版只提供用户主状态读接口。
|
|
service UserService {
|
|
rpc GetUser(GetUserRequest) returns (GetUserResponse);
|
|
rpc BatchGetUsers(BatchGetUsersRequest) returns (BatchGetUsersResponse);
|
|
}
|
|
|
|
// UserIdentityService 是短号解析和变更的唯一内部 owner。
|
|
service UserIdentityService {
|
|
rpc GetUserIdentity(GetUserIdentityRequest) returns (GetUserIdentityResponse);
|
|
rpc ResolveDisplayUserID(ResolveDisplayUserIDRequest) returns (ResolveDisplayUserIDResponse);
|
|
rpc ChangeDisplayUserID(ChangeDisplayUserIDRequest) returns (ChangeDisplayUserIDResponse);
|
|
rpc ApplyPrettyDisplayUserID(ApplyPrettyDisplayUserIDRequest) returns (ApplyPrettyDisplayUserIDResponse);
|
|
rpc ExpirePrettyDisplayUserID(ExpirePrettyDisplayUserIDRequest) returns (ExpirePrettyDisplayUserIDResponse);
|
|
}
|