syntax = "proto3"; package member; option go_package="./member"; // ================ enum ================ enum VerifyType { VERIFY_NONE = 0; // 初始(異常) VERIFY_EMAIL = 1; VERIFY_PHONE = 2; VERIFY_GOOGLE = 3; } enum AlarmType { ALARM_NONE = 0; // 初始(異常) ALARM_NOT = 1; // 未告警 ALARM_SYSTEM = 2; // 系統告警中 } enum MemberStatus { STATUS_NONE = 0; // 初始(異常) STATUS_VERIFY = 1; // 尚未驗證 STATUS_COMPLETE = 2; // 帳號啟用中 STATUS_DISABLE = 3; // 帳號停權中 STATUS_EMAIL = 4; // 信箱以驗證 STATUS_PHONE = 5; // 手機以驗證 STATUS_GA = 6; // GA 已綁定 } enum Gender { GENDER_NONE = 0; // 初始(未提供) GENDER_MALE = 1; // 男性 GENDER_FEMALE = 2; // 女性 } // ================ enum ================ // ================ common ================ message Pager { int64 total =1; int64 size=2; int64 index=3; } message Response { BaseResp status=1; } message BaseResp { string code = 1; string message = 2; string error = 3; } // ================ common ================ // ================ account ================ message CreateLoginUserReq { string login_id = 1; int64 platform = 2; string token = 3; } message BindingUserReq { string uid = 1; string login_id = 2; } message CreateUserInfoReq { string uid = 1; VerifyType verify_type = 2; AlarmType alarm_type = 3; MemberStatus status = 4; string language = 5; string currency = 6; optional string nick_name = 7; optional uint32 gender = 8; optional int64 birthday = 9; } message GetAccountInfoResp { BaseResp status = 1; CreateLoginUserReq data = 2; } // UpdateUserInfoReq 不處理邏輯給不給改,這裡只關新增修改刪除 message UpdateUserInfoReq { string uid = 1; optional string language = 2; optional string currency = 3; optional string nick_name = 4; optional uint32 gender = 5; optional int64 birthday = 6; optional VerifyType verify_type = 7; optional AlarmType alarm_type = 8; optional MemberStatus status = 9; } message GetUIDByAccountReq { string account = 1; } message UID { string uid = 1; } message GetUidByAccountResp { BaseResp status = 1; UID data = 2; } message UpdateTokenReq { string account = 1; string token = 2; } message GenerateRefreshCodeReq { string account = 1; int32 code_type =2; } message VerifyCode { string verify_code = 1; } message GenerateRefreshCodeResp { BaseResp status = 1; VerifyCode data = 2; } message VerifyRefreshCodeReq { string account = 1; int32 code_type =2; string verify_code = 3; } message UpdateStatusReq { string uid = 1; MemberStatus status = 2; } message GetUserInfoReq { string uid = 1; optional string nick_name =2; } message UserInfo { string uid = 1; VerifyType verify_type = 2; AlarmType alarm_type = 3; MemberStatus status = 4; string language = 5; string currency = 6; optional string nick_name = 7; optional uint32 gender = 8; optional int64 birthday = 9; } message GetUserInfoResp { BaseResp status = 1; UserInfo data = 2; } message ListUserInfoReq { optional VerifyType verify_type = 1; optional AlarmType alarm_type = 2; optional MemberStatus status = 3; optional int64 create_start_time = 4; optional int64 create_end_time = 5; int64 page_size =6; int64 page_index=7; } message ListUserInfoResp { BaseResp status = 1; repeated UserInfo data = 2; Pager page =3; } service Account { // CreateUserAccount 建立帳號與密碼 -> 可登入,但可不可以做其他事情看業務流程,也可以只註冊就好 rpc CreateUserAccount(CreateLoginUserReq) returns(Response); // GetUserAccountInfo 取得帳號密碼資料 rpc GetUserAccountInfo(GetUIDByAccountReq) returns(GetAccountInfoResp); // UpdateUserToken 更新密碼 rpc UpdateUserToken(UpdateTokenReq) returns(Response); // GetUidByAccount 用帳號換取 UID rpc GetUidByAccount(GetUIDByAccountReq) returns(GetUidByAccountResp); // BindAccount 綁定帳號 -> account bind to UID rpc BindAccount(BindingUserReq) returns(Response); // BindUserInfo 初次,綁定 User Info rpc BindUserInfo(CreateUserInfoReq) returns(Response); // UpdateUserInfo 更新 User Info rpc UpdateUserInfo(UpdateUserInfoReq) returns(Response); // UpdateStatus 修改狀態 rpc UpdateStatus(UpdateStatusReq) returns(Response); // UpdateStatus 取得會員資訊 rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); // ListMember 取得會員列表 rpc ListMember(ListUserInfoReq) returns(ListUserInfoResp); // GenerateRefreshCode 這個帳號驗證碼(十分鐘),通用的 rpc GenerateRefreshCode(GenerateRefreshCodeReq) returns(GenerateRefreshCodeResp); // VerifyRefreshCode 驗證忘記密碼 token rpc VerifyRefreshCode(VerifyRefreshCodeReq) returns(Response); } // ================ account ================