aeus-admin/pb/organize.proto

227 lines
6.3 KiB
Protocol Buffer

syntax = "proto3";
package organize;
import "aeus/rest.proto";
import "validate/validate.proto";
import "google/protobuf/descriptor.proto";
import "google/api/annotations.proto";
option go_package = "git.nobla.cn/golang/aeis-admin/pb;pb";
// Menu 菜单模型定义
message Menu {
option (aeus.rest) = {
table: "menus"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
int64 parent_id = 2;
string name = 3 [(aeus.field)={gorm:"index;size:60"},(validate.rules).string = {max_len: 60}];
string label = 4 [(aeus.field)={gorm:"size:120"},(validate.rules).string = {max_len: 120}];
string uri = 5 [(aeus.field)={gorm:"size:512"},(validate.rules).string = {max_len: 512}];
string view_path = 6 [(aeus.field)={gorm:"size:512"},(validate.rules).string = {max_len: 512}];
string icon = 7 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
bool hidden = 8;
bool public = 9;
}
// Role 角色模型定义
message Role {
option (aeus.rest) = {
table: "roles"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
string name = 2 [(aeus.field)={gorm:"index;size:60"},(validate.rules).string = {max_len: 60}];
string label = 3 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
string description = 4 [(aeus.field)={gorm:"size:1024"},(validate.rules).string = {max_len: 1024}];
}
// Permission 权限模型定义
message Permission {
option (aeus.rest) = {
table: "permissions"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
int64 menu_id = 2 [(aeus.field)={gorm:"index"}];
string permission = 3 [(aeus.field)={gorm:"index;size:60"},(validate.rules).string = {max_len: 60}];
string label = 4 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
}
// RolePermission 角色权限关联表
message RolePermission {
option (aeus.rest) = {
table: "role_permissions"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
string role = 2 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
int64 permission_id = 3;
}
// User 用户模型定义
message User {
option (aeus.rest) = {
table: "users"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
int64 created_at = 2;
int64 updated_at = 3;
string uid = 4 [(aeus.field) = {gorm:"index;size:20"},(validate.rules).string = {min_len: 5, max_len: 20}];
string username = 5 [(aeus.field)={gorm:"size:20"},(validate.rules).string = {min_len: 5, max_len: 20}];
string role = 6 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
bool admin = 7;
int64 dept_id = 8 [(aeus.field) = {gorm:"not null;default:0"}];
string tag = 9 [ (aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
string password = 10 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
string email = 11 [(aeus.field)={gorm:"size:60"},(validate.rules).string = {max_len: 60}];
string avatar = 12 [(aeus.field)={gorm:"size:1024"},(validate.rules).string = {max_len: 1024}];
string gender = 13 [(aeus.field)={gorm:"size:20;default:man"},(validate.rules).string = {max_len: 20}];
string description = 14 [(aeus.field)={gorm:"size:1024"},(validate.rules).string = {max_len: 1024}];
}
// Department 部门模型定义
message Department {
option (aeus.rest) = {
table: "departments"
};
int64 id = 1 [(aeus.field) = {gorm:"primaryKey"}];
int64 created_at = 2;
int64 updated_at = 3;
int64 parent_id = 4;
string name = 5 [(aeus.field)={gorm:"size:20"},(validate.rules).string = {max_len: 20}];
string description = 6 [(aeus.field)={gorm:"size:1024"},(validate.rules).string = {max_len: 1024}];
}
message PermissionItem {
string value = 1;
string label = 2;
}
// MenuItem 菜单数据
message MenuItem {
string label = 1;
string name = 2;
string icon = 3;
bool hidden = 4;
bool public = 5;
string route = 6;
repeated PermissionItem permissions = 7;
repeated MenuItem children = 8;
}
// 获取菜单的请求
message GetMenuRequest {
bool permission = 1;
}
// 获取菜单的响应
message GetMenuResponse {
repeated MenuItem data = 1;
}
// 菜单服务
service MenuService {
rpc GetMenus(GetMenuRequest) returns (GetMenuResponse) {
option (google.api.http) = {
get: "/api/menu"
};
}
}
// 获取用户信息
message GetProfileRequest {
string uid = 1;
}
// 获取用户信息
message GetProfileResponse {
string uid = 1;
string username = 2;
string role = 3;
string email = 4;
string avatar = 5;
bool admin = 6;
string description = 7;
}
message ResetPasswordRequest {
string uid = 1;
string old_password = 2;
string new_password = 3;
}
message ResetPasswordResponse {
string uid = 1;
}
message UpdateProfileRequest {
string uid = 1;
string username = 2;
string email = 4;
string avatar = 5;
string description = 7;
}
message UpdateProfileResponse {
string uid = 1;
}
// 用户服务
service ProfileService {
rpc GetProfile(GetProfileRequest) returns (GetProfileResponse) {
option (google.api.http) = {
get: "/user/profile"
};
}
rpc UpdateProfile(UpdateProfileRequest) returns (UpdateProfileResponse) {
option (google.api.http) = {
put: "/user/profile"
body: "*"
};
}
rpc ResetPassword(ResetPasswordRequest) returns (ResetPasswordResponse) {
option (google.api.http) = {
post: "/user/reset-password"
body: "*"
};
}
}
message LoginRequest {
string username = 1;
string password = 2;
string token = 3;
}
message LoginResponse {
string uid = 1;
string username = 2;
string token = 3;
int64 expires = 4;
}
message LogoutRequest {
string token = 1;
}
message LogoutResponse {
string uid = 1;
}
// 授权服务
service AuthService {
rpc Login(LoginRequest) returns (LoginResponse) {
option (google.api.http) = {
post: "/passport/login"
body: "*"
};
}
rpc Logout(LogoutRequest) returns (LogoutResponse) {
option (google.api.http) = {
post: "/passport/logout"
body: "*"
};
}
}