syntax = "proto3"; package member; option go_package="./member"; // OKResp message OKResp {} // NoneReq message NoneReq {} // ================ enum ================ enum VerifyType { VERIFY_NONE = 0; // 初始(異常) VERIFY_OK = 1; VERIFY_NOT = 2; // 尚未 } 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; // 帳號停權中 } // ================ enum ================ // ================ common ================ message Pager { int64 total =1; int64 size=2; int64 index=3; } // ================ common ================ // ================ account ================ message CreateLoginUserReq { string login_id = 1; int64 platform = 2; string token = 3; } message BindingUserReq { string uid = 1; string login_id = 2; int64 type = 3; } message BindingUserResp { string uid = 1; string login_id = 2; int64 type = 3; } message CreateUserInfoReq { string uid = 1; VerifyType verify_type = 2; AlarmType alarm_type = 3; MemberStatus status = 4; string language = 5; string currency = 6; optional string avatar= 7; optional string nick_name = 8; optional string full_name = 9; optional int64 gender = 10; optional int64 birthdate = 11; optional string phone_number = 12; optional string email = 13; optional string address = 14; } message GetAccountInfoResp { CreateLoginUserReq data = 1; } // UpdateUserInfoReq 不處理邏輯給不給改,這裡只關新增修改刪除 message UpdateUserInfoReq { string uid = 1; optional string language = 2; optional string currency = 3; optional string nick_name = 4; optional string avatar = 5; optional VerifyType verify_type = 6; optional AlarmType alarm_type = 7; optional MemberStatus status = 8; optional string full_name = 9; optional int64 gender = 10; optional int64 birthdate = 11; optional string phone_number = 12; optional string email = 13; optional string address = 14; } message GetUIDByAccountReq { string account = 1; } message GetUIDByAccountResp { string uid = 1; string account =2; } message UpdateTokenReq { string account = 1; string token = 2; int64 platform=3; } message GenerateRefreshCodeReq { string account = 1; int32 code_type =2; } message VerifyCode { string verify_code = 1; } message GenerateRefreshCodeResp { VerifyCode data = 1; } 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; string avatar = 7; int64 create_time=8; int64 update_time=9; optional string nick_name = 10; } message GetUserInfoResp { UserInfo data = 1; } 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 { repeated UserInfo data = 1; Pager page =2; } message VerifyAuthResultReq { string token = 1; optional string account = 2; } message VerifyAuthResultResp { bool status = 1; } message TwitterAccessTokenResp { string token = 1; } message BindVerifyEmailReq { string uid = 1; string email = 2; } message BindVerifyPhoneReq { string uid = 1; string phone = 2; } message LineAccessTokenResp { string token = 1; } message LineUserProfile { string name = 1; string email = 2; } service Account { // CreateUserAccount 建立帳號與密碼 -> 可登入,但可不可以做其他事情看業務流程,也可以只註冊就好 rpc CreateUserAccount(CreateLoginUserReq) returns(OKResp); // GetUserAccountInfo 取得帳號密碼資料 rpc GetUserAccountInfo(GetUIDByAccountReq) returns(GetAccountInfoResp); // UpdateUserToken 更新密碼 rpc UpdateUserToken(UpdateTokenReq) returns(OKResp); // GetUIDByAccount 用帳號換取 UID rpc GetUIDByAccount(GetUIDByAccountReq) returns(GetUIDByAccountResp); // BindAccount 綁定帳號 -> account bind to UID rpc BindAccount(BindingUserReq) returns(BindingUserResp); // BindUserInfo 初次,綁定 User Info rpc BindUserInfo(CreateUserInfoReq) returns(OKResp); // BindVerifyEmail 綁定 Email rpc BindVerifyEmail(BindVerifyEmailReq) returns (OKResp); // BindVerifyPhone 綁定 Phone rpc BindVerifyPhone(BindVerifyPhoneReq) returns (OKResp); // UpdateUserInfo 更新 User Info rpc UpdateUserInfo(UpdateUserInfoReq) returns(OKResp); // UpdateStatus 修改狀態 rpc UpdateStatus(UpdateStatusReq) returns(OKResp); // GetUserInfo 取得會員資訊 rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); // ListMember 取得會員列表 rpc ListMember(ListUserInfoReq) returns(ListUserInfoResp); // GenerateRefreshCode 這個帳號驗證碼(十分鐘),通用的 rpc GenerateRefreshCode(GenerateRefreshCodeReq) returns(GenerateRefreshCodeResp); // VerifyRefreshCode 驗證忘記密碼 token rpc VerifyRefreshCode(VerifyRefreshCodeReq) returns(OKResp); // CheckRefreshCode 驗證忘記密碼 token 不刪除,只確認) rpc CheckRefreshCode(VerifyRefreshCodeReq) returns(OKResp); // VerifyGoogleAuthResult 驗證 google 登入是否有效 rpc VerifyGoogleAuthResult(VerifyAuthResultReq)returns(VerifyAuthResultResp); // VerifyPlatformAuthResult 驗證 google 登入是否有效 rpc VerifyPlatformAuthResult(VerifyAuthResultReq)returns(VerifyAuthResultResp); // LineCodeToAccessToken Line 驗證相關 rpc LineCodeToAccessToken(NoneReq) returns (LineAccessTokenResp); // LineGetProfileByAccessToken Line 驗證相關 rpc LineGetProfileByAccessToken(NoneReq) returns (LineUserProfile); } // ================ account ================