package models type Role struct { ID uint64 `gorm:"type:bigint unsigned;autoIncrement;primaryKey" json:"id"` Name string `gorm:"uniqueIndex;not null" json:"name"` // admin, user Description string `json:"description"` Permissions []Permission `gorm:"many2many:role_permissions;" json:"permissions"` } type Permission struct { ID uint64 `gorm:"type:bigint unsigned;autoIncrement;primaryKey" json:"id"` Name string `gorm:"uniqueIndex;not null" json:"name"` // user:read, user:write Description string `json:"description"` }