40 lines
906 B
Go
40 lines
906 B
Go
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,omitempty" gorm:"foreignKey:TagID"`
|
|
Groups []TagGroup `json:"groups,omitempty" gorm:"foreignKey:TagID"`
|
|
Posts []Post `json:"posts,omitempty" 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"`
|
|
}
|