mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
30 lines
984 B
Go
30 lines
984 B
Go
package models
|
|
|
|
// AliasResolver returns the alias of an entity, given its original name. I.e., it returns Alias.Key, given an Alias.Value
|
|
type AliasResolver func(t uint8, k string) string
|
|
|
|
// AliasReverseResolver returns all original names, which have the given alias as mapping target. I.e., it returns a list of Alias.Value, given an Alias.Key
|
|
type AliasReverseResolver func(t uint8, k string) []string
|
|
|
|
type Alias struct {
|
|
ID uint `gorm:"primary_key"`
|
|
Type uint8 `gorm:"not null; index:idx_alias_type_key"`
|
|
User *User `json:"-" gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
|
|
UserID string `gorm:"not null; index:idx_alias_user"`
|
|
Key string `gorm:"not null; index:idx_alias_type_key"`
|
|
Value string `gorm:"not null"`
|
|
}
|
|
|
|
func (a *Alias) IsValid() bool {
|
|
return a.Key != "" && a.Value != "" && a.validateType()
|
|
}
|
|
|
|
func (a *Alias) validateType() bool {
|
|
for _, t := range SummaryTypes() {
|
|
if a.Type == t {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|