Files

58 lines
1.6 KiB
Go

package domain
import "time"
// RoleStatus 角色状态
type RoleStatus int
const (
RoleStatusDisabled RoleStatus = 0 // 禁用
RoleStatusEnabled RoleStatus = 1 // 启用
)
// Role 角色模型
type Role struct {
ID int64 `gorm:"primaryKey;autoIncrement" json:"id"`
Name string `gorm:"type:varchar(50);uniqueIndex;not null" json:"name"`
Code string `gorm:"type:varchar(50);uniqueIndex;not null" json:"code"`
Description string `gorm:"type:varchar(200)" json:"description"`
ParentID *int64 `gorm:"index" json:"parent_id,omitempty"`
Level int `gorm:"default:1;index" json:"level"`
IsSystem bool `gorm:"default:false" json:"is_system"` // 是否系统角色
IsDefault bool `gorm:"default:false;index" json:"is_default"` // 是否默认角色
Status RoleStatus `gorm:"type:int;default:1" json:"status"`
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
}
// TableName 指定表名
func (Role) TableName() string {
return "roles"
}
// PredefinedRoles 预定义角色
var PredefinedRoles = []Role{
{
ID: 1,
Name: "管理员",
Code: "admin",
Description: "系统管理员角色,拥有所有权限",
ParentID: nil,
Level: 1,
IsSystem: true,
IsDefault: false,
Status: RoleStatusEnabled,
},
{
ID: 2,
Name: "普通用户",
Code: "user",
Description: "普通用户角色,基本权限",
ParentID: nil,
Level: 1,
IsSystem: true,
IsDefault: true,
Status: RoleStatusEnabled,
},
}