syntax = "proto3"; package system; option go_package = "github.com/muyuqingfeng/iloom/shared/pkg/grpc/pb/system"; // ==================== Auth ==================== message LoginReq { string username = 1; string password = 2; string ip = 3; } message LoginResp { string user_id = 1; string username = 2; string real_name = 3; string avatar = 4; string role_key = 5; string role_name = 6; } message ChangePasswordReq { string user_id = 1; string old_password = 2; string new_password = 3; } // ==================== User ==================== message UserInfo { string user_id = 1; string username = 2; string real_name = 3; string phone = 4; string email = 5; string avatar = 6; int64 status = 7; string role_id = 8; string role_name = 9; string last_login_time = 10; string created_at = 11; string updated_at = 12; } message CreateUserReq { string username = 1; string password = 2; string real_name = 3; string phone = 4; string email = 5; string role_id = 6; } message UpdateUserReq { string user_id = 1; string real_name = 2; string phone = 3; string email = 4; string role_id = 5; string avatar = 6; } message DeleteUserReq { string user_id = 1; } message GetUserReq { string user_id = 1; } message ListUserReq { int64 page = 1; int64 page_size = 2; string username = 3; string real_name = 4; string phone = 5; int64 status = 6; } message ListUserResp { int64 total = 1; repeated UserInfo list = 2; } message UpdateUserStatusReq { string user_id = 1; int64 status = 2; } // ==================== Role ==================== message RoleInfo { string role_id = 1; string role_name = 2; string role_key = 3; string role_desc = 4; int64 sort_order = 5; int64 status = 6; repeated string menu_ids = 7; string created_at = 8; string updated_at = 9; } message CreateRoleReq { string role_name = 1; string role_key = 2; string role_desc = 3; int64 sort_order = 4; } message UpdateRoleReq { string role_id = 1; string role_name = 2; string role_key = 3; string role_desc = 4; int64 sort_order = 5; } message DeleteRoleReq { string role_id = 1; } message GetRoleReq { string role_id = 1; } message ListRoleReq { int64 page = 1; int64 page_size = 2; string role_name = 3; int64 status = 4; } message ListRoleResp { int64 total = 1; repeated RoleInfo list = 2; } message SetRolePermissionsReq { string role_id = 1; repeated string menu_ids = 2; } // ==================== Menu ==================== message MenuInfo { string menu_id = 1; string parent_id = 2; string menu_name = 3; int64 menu_type = 4; string path = 5; string component = 6; string permission = 7; string icon = 8; int64 sort_order = 9; int64 visible = 10; int64 status = 11; repeated MenuInfo children = 12; string created_at = 13; string updated_at = 14; } message CreateMenuReq { string parent_id = 1; string menu_name = 2; int64 menu_type = 3; string path = 4; string component = 5; string permission = 6; string icon = 7; int64 sort_order = 8; } message UpdateMenuReq { string menu_id = 1; string parent_id = 2; string menu_name = 3; int64 menu_type = 4; string path = 5; string component = 6; string permission = 7; string icon = 8; int64 sort_order = 9; int64 visible = 10; } message DeleteMenuReq { string menu_id = 1; } message GetMenuReq { string menu_id = 1; } message ListMenuReq {} message ListMenuResp { repeated MenuInfo list = 1; } // ==================== Operation Log ==================== message OperationLogInfo { string log_id = 1; string user_id = 2; string username = 3; string module = 4; string operation = 5; string method = 6; string path = 7; string ip = 8; int64 duration = 9; int64 status = 10; string created_at = 11; } message CreateLogReq { string user_id = 1; string username = 2; string module = 3; string operation = 4; string method = 5; string path = 6; string request_body = 7; string response_body = 8; string ip = 9; string user_agent = 10; int64 duration = 11; int64 status = 12; } message ListLogReq { int64 page = 1; int64 page_size = 2; string username = 3; string module = 4; string operation = 5; string start_time = 6; string end_time = 7; } message ListLogResp { int64 total = 1; repeated OperationLogInfo list = 2; } // ==================== Config ==================== message ConfigInfo { string config_id = 1; string config_key = 2; string config_value = 3; string config_name = 4; string config_group = 5; string remark = 6; string updated_at = 7; } message ListConfigReq { string config_group = 1; } message ListConfigResp { repeated ConfigInfo list = 1; } message UpdateConfigReq { string config_key = 1; string config_value = 2; } // ==================== Common ==================== message IdResp { string id = 1; } message Empty {} // ==================== Service ==================== service SystemService { // Auth rpc Login(LoginReq) returns (LoginResp); rpc ChangePassword(ChangePasswordReq) returns (Empty); // User rpc CreateUser(CreateUserReq) returns (IdResp); rpc UpdateUser(UpdateUserReq) returns (Empty); rpc DeleteUser(DeleteUserReq) returns (Empty); rpc GetUser(GetUserReq) returns (UserInfo); rpc ListUser(ListUserReq) returns (ListUserResp); rpc UpdateUserStatus(UpdateUserStatusReq) returns (Empty); // Role rpc CreateRole(CreateRoleReq) returns (IdResp); rpc UpdateRole(UpdateRoleReq) returns (Empty); rpc DeleteRole(DeleteRoleReq) returns (Empty); rpc GetRole(GetRoleReq) returns (RoleInfo); rpc ListRole(ListRoleReq) returns (ListRoleResp); rpc SetRolePermissions(SetRolePermissionsReq) returns (Empty); // Menu rpc CreateMenu(CreateMenuReq) returns (IdResp); rpc UpdateMenu(UpdateMenuReq) returns (Empty); rpc DeleteMenu(DeleteMenuReq) returns (Empty); rpc GetMenu(GetMenuReq) returns (MenuInfo); rpc ListMenu(ListMenuReq) returns (ListMenuResp); // Operation Log rpc CreateOperationLog(CreateLogReq) returns (Empty); rpc ListOperationLog(ListLogReq) returns (ListLogResp); // Config rpc ListConfig(ListConfigReq) returns (ListConfigResp); rpc UpdateConfig(UpdateConfigReq) returns (Empty); }