package models // Tag models type Tag struct { Name TagName `json:"name" gorm:"primaryKey"` Type TagType `json:"type" gorm:"column:tag_type"` Aliases []TagAlias `json:"aliases" gorm:"foreignKey:TagID"` Groups []TagGroup `json:"groups" gorm:"foreignKey:TagID"` Posts []Post `json:"posts" gorm:"many2many:post_tags;"` } func (Tag) TableName() string { return "Tag" } // TagAlias model type TagAlias struct { Name TagAliasName `json:"name" gorm:"primaryKey"` TagID TagName `json:"tag_id"` } func (TagAlias) TableName() string { return "TagAlias" } // TagGroup model type TagGroup struct { Name TagGroupName `json:"name" gorm:"primaryKey"` TagID TagName `json:"tag_id"` } func (TagGroup) TableName() string { return "TagGroup" } type TagsWithFrequency struct { Frequency int64 `json:"frequency"` Tags Tag `json:"tags"` }