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 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); }