photoprism/internal/models/tag.go

40 lines
624 B
Go
Raw Normal View History

2018-09-16 19:09:40 +02:00
package models
2018-07-18 15:17:56 +02:00
import (
"strings"
"github.com/gosimple/slug"
2018-07-18 15:17:56 +02:00
"github.com/jinzhu/gorm"
)
2018-11-06 19:02:03 +01:00
// Photo tagß
2018-07-18 15:17:56 +02:00
type Tag struct {
gorm.Model
TagSlug string `gorm:"type:varchar(100);unique_index"`
TagLabel string `gorm:"type:varchar(100);unique_index"`
}
2018-11-06 19:02:03 +01:00
// Create a new tag
func NewTag(label string) *Tag {
if label == "" {
label = "unknown"
}
tagLabel := strings.ToLower(label)
tagSlug := slug.MakeLang(tagLabel, "en")
result := &Tag{
TagLabel: tagLabel,
TagSlug: tagSlug,
}
return result
}
func (t *Tag) FirstOrCreate(db *gorm.DB) *Tag {
db.FirstOrCreate(t, "tag_label = ?", t.TagLabel)
return t
2018-07-18 15:17:56 +02:00
}