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, }, }