photoprism/internal/models/photo.go

55 lines
1.4 KiB
Go
Raw Normal View History

2018-09-16 17:09:40 +00:00
package models
2018-07-18 13:17:56 +00:00
import (
2018-08-09 21:10:05 +00:00
"time"
"github.com/jinzhu/gorm"
uuid "github.com/satori/go.uuid"
2018-07-18 13:17:56 +00:00
)
2018-11-06 18:02:03 +00:00
// A photo can have multiple images and sidecar files
2018-07-18 13:17:56 +00:00
type Photo struct {
Model
PhotoUUID string `gorm:"unique_index;"`
PhotoPath string `gorm:"type:varchar(128);index;"`
PhotoName string
PhotoTitle string
PhotoTitleChanged bool
PhotoDescription string `gorm:"type:text;"`
PhotoNotes string `gorm:"type:text;"`
PhotoArtist string
PhotoFavorite bool
PhotoPrivate bool
PhotoSensitive bool
PhotoStory bool
PhotoLat float64 `gorm:"index;"`
PhotoLong float64 `gorm:"index;"`
PhotoAltitude int
PhotoFocalLength int
PhotoIso int
PhotoAperture float64
PhotoExposure string
PhotoViews uint
Camera *Camera
CameraID uint `gorm:"index;"`
Lens *Lens
LensID uint `gorm:"index;"`
Country *Country
CountryID string `gorm:"index;"`
CountryChanged bool
Location *Location
LocationID uint
LocationChanged bool
LocationEstimated bool
TakenAt time.Time `gorm:"index;"`
TakenAtChanged bool
TimeZone string
Labels []*PhotoLabel
Files []*File
Albums []*Album `gorm:"many2many:album_photos;"`
}
func (m *Photo) BeforeCreate(scope *gorm.Scope) error {
return scope.SetColumn("PhotoUUID", uuid.NewV4().String())
}