syntax = "proto3"; package base_service; option go_package = "./proto;authorization_service"; message AdminBase { string key = 1; string value = 2; } message AdminUser{ int64 id = 1; string username = 2; string phone_number = 3; string avatar = 4; string email = 5; base_service.StatusEnum status = 6; bool is_reserved = 7; int64 created_at = 8; int64 updated_at = 9; repeated AdminBase roles = 10; repeated AdminBase teams = 11; } message AdminRole { int64 id = 1; string name = 2; string description = 3; repeated base_service.AdminBase users = 4; repeated base_service.AdminBase permissions = 5; string created_by = 6; int64 created_at = 7; int64 updated_at = 8; base_service.StatusEnum status = 9; bool is_reserved =10; } // type AdminPermission struct { //ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"` //Name string `json:"name"` // Description string `json:"description"` // Roles []AdminRole `gorm:"many2many:admin_role_permission;" json:"roles"` // CreatedAt time.Time `json:"created_at"` // CreatedBy string `json:"created_by"` // UpdatedAt *time.Time `json:"updated_at"` // Status string `json:"status"` // 可以是 "enabled", "disabled", "deleted" 等 // IsReserved bool `json:"is_reserved"` // } message AdminPermission { int64 id = 1; string name = 2; string description = 3; repeated base_service.AdminBase roles = 4; int64 created_at = 5; string created_by = 6; int64 updated_at = 7; base_service.StatusEnum status = 8; bool is_reserved = 9; string endpoint = 10; } enum StatusEnum { UNKNOWN = 0; ENABLED = 1; DISABLED = 2; DELETED = 3; }