Documentation ¶
Overview ¶
Package entity provides entity models based on the GORM library.
Copyright (c) 2018 - 2024 PhotoPrism UG. All rights reserved.
This program is free software: you can redistribute it and/or modify it under Version 3 of the GNU Affero General Public License (the "AGPL"): <https://docs.photoprism.app/license/agpl> This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. The AGPL is supplemented by our Trademark and Brand Guidelines, which describe how our Brand Assets may be used: <https://www.photoprism.app/trademark>
Feel free to send an email to hello@photoprism.app if you have questions, want to support our work, or just want to say hello.
Additional information can be found in our Developer Guide: <https://docs.photoprism.app/developer-guide/>
Index ¶
- Constants
- Variables
- func AddDuplicate(fileName, fileRoot, fileHash string, fileSize, modTime int64) error
- func AddPhotoToAlbums(uid string, albums []string) (err error)
- func AddPhotoToUserAlbums(photoUid string, albums []string, userUid string) (err error)
- func AddUser(frm form.User) error
- func AuthLocal(user *User, f form.Login, s *Session, c *gin.Context) (provider authn.ProviderType, method authn.MethodType, err error)
- func AuthSession(f form.Login, c *gin.Context) (sess *Session, user *User, err error)
- func CacheSession(s *Session, d time.Duration)
- func Clip(s string, maxLen int) string
- func Count(m interface{}, keys []string, values []interface{}) int
- func CreateAlbumFixtures()
- func CreateCameraFixtures()
- func CreateCategoryFixtures()
- func CreateCellFixtures()
- func CreateClientFixtures()
- func CreateCountryFixtures()
- func CreateDefaultFixtures()
- func CreateDefaultUsers()
- func CreateFaceFixtures()
- func CreateFileFixtures()
- func CreateFileShareFixtures()
- func CreateFileSyncFixtures()
- func CreateFolderFixtures()
- func CreateKeywordFixtures()
- func CreateLabelFixtures()
- func CreateLensFixtures()
- func CreateLinkFixtures()
- func CreateMarkerFixtures()
- func CreatePasscodeFixtures()
- func CreatePasswordFixtures()
- func CreatePhotoAlbumFixtures()
- func CreatePhotoFixtures()
- func CreatePhotoKeywordFixtures()
- func CreatePlaceFixtures()
- func CreateReactionFixtures()
- func CreateServiceFixtures()
- func CreateSessionFixtures()
- func CreateSubjectFixtures()
- func CreateTestFixtures()
- func CreateUnknownCamera()
- func CreateUnknownCountry()
- func CreateUnknownLens()
- func CreateUnknownLocation()
- func CreateUnknownPlace()
- func CreateUserDetails(user *User) error
- func CreateUserFixtures()
- func CreateUserSettings(user *User) error
- func CreateUserShareFixtures()
- func Db() *gorm.DB
- func DbDialect() string
- func DeleteChildSessions(s *Session) (deleted int)
- func DeleteClientSessions(client *Client, authMethod authn.MethodType, limit int64) (deleted int)
- func DeleteExpiredSessions() (deleted int)
- func DeleteFromSessionCache(id string)
- func DeleteOrphanFaces() (count int, err error)
- func DeleteOrphanPeople() (count int, err error)
- func DeleteSession(s *Session) error
- func DeleteShareLinks(shareUid string) error
- func FindLegacyUser(find User) *legacy.User
- func FindLegacyUsers(search string) legacy.Users
- func FlushAlbumCache()
- func FlushCameraCache()
- func FlushCountryCache()
- func FlushLensCache()
- func FlushSessionCache()
- func GenerateToken() string
- func HasDbProvider() bool
- func InitDb(opt migrate.Options)
- func InvalidDownloadToken(t string) bool
- func InvalidPreviewToken(t string) bool
- func IsDialect(name string) bool
- func Log(model, action string, err error)
- func MapKey(takenAt time.Time, cellId string) string
- func PurgeDuplicate(fileName, fileRoot string) error
- func ResetTestFixtures()
- func SanitizeStringType(s string) string
- func SanitizeStringTypeLower(s string) string
- func Save(m interface{}, keyNames ...string) (err error)
- func SavePhotoForm(model Photo, form form.Photo) error
- func Seconds(s int) time.Duration
- func SetDbProvider(conn Gorm)
- func SrcString(src string) string
- func TimePointer() *time.Time
- func TimeStamp() time.Time
- func ToASCII(s string) string
- func TypeString(entityType string) string
- func UTC() time.Time
- func UnscopedDb() *gorm.DB
- func Update(m interface{}, keyNames ...string) (err error)
- func UpdateAlbum(albumUID string, values interface{}) (err error)
- func UpdateCounts() (err error)
- func UpdateLabelCounts() (err error)
- func UpdatePlacesCounts() (err error)
- func UpdateSubjectCounts() (err error)
- func ValidFaceCount(fileUid string) (c int)
- func Yesterday() time.Time
- type Album
- func CachedAlbumByUID(uid string) (m Album, err error)
- func FindAlbum(find Album) *Album
- func FindAlbumByAttr(slugs, filters []string, albumType string) *Album
- func FindAlbumBySlug(albumSlug, albumType string) *Album
- func FindFolderAlbum(albumPath string) *Album
- func FindMonthAlbum(year, month int) *Album
- func NewAlbum(albumTitle, albumType string) *Album
- func NewFolderAlbum(albumTitle, albumPath, albumFilter string) *Album
- func NewMomentsAlbum(albumTitle, albumSlug, albumFilter string) *Album
- func NewMonthAlbum(albumTitle, albumSlug string, year, month int) *Album
- func NewStateAlbum(albumTitle, albumSlug, albumFilter string) *Album
- func NewUserAlbum(albumTitle, albumType, userUid string) *Album
- func (m *Album) AddPhotos(UIDs []string) (added PhotoAlbums)
- func (m *Album) AfterDelete(tx *gorm.DB) (err error)
- func (m *Album) AfterUpdate(tx *gorm.DB) (err error)
- func (m *Album) BeforeCreate(scope *gorm.Scope) error
- func (m *Album) Create() error
- func (m *Album) Delete() error
- func (m *Album) DeletePermanently() error
- func (m *Album) Deleted() bool
- func (m *Album) Find() *Album
- func (m *Album) HasID() bool
- func (m *Album) IsDefault() bool
- func (m *Album) IsMoment() bool
- func (m *Album) IsState() bool
- func (m *Album) Links() Links
- func (m *Album) LoadFromYaml(fileName string) error
- func (m *Album) PublishCountChange(n int)
- func (m *Album) RemovePhotos(UIDs []string) (removed PhotoAlbums)
- func (m *Album) Restore() error
- func (m *Album) Save() error
- func (m *Album) SaveAsYaml(fileName string) error
- func (m *Album) SaveForm(f form.Album) error
- func (m *Album) SetLocation(location, state, country string) *Album
- func (m *Album) SetTitle(title string) *Album
- func (m *Album) String() string
- func (Album) TableName() string
- func (m *Album) Title() string
- func (m *Album) Update(attr string, value interface{}) error
- func (m *Album) UpdateFolder(albumPath, albumFilter string) error
- func (m *Album) UpdateTitleAndLocation(title, location, state, country, slug string) error
- func (m *Album) UpdateTitleAndState(title, slug, stateName, countryCode string) error
- func (m *Album) Updates(values interface{}) error
- func (m *Album) Yaml() (out []byte, err error)
- func (m *Album) YamlFileName(albumsPath string) string
- func (m *Album) ZipName() string
- type AlbumMap
- type AlbumUser
- type Albums
- type Camera
- type CameraMap
- type Cameras
- type Category
- type Cell
- func (m *Cell) Category() string
- func (m *Cell) City() string
- func (m *Cell) CityContains(text string) bool
- func (m *Cell) CountryCode() string
- func (m *Cell) CountryName() string
- func (m *Cell) Create() error
- func (m *Cell) Delete() (err error)
- func (m *Cell) District() string
- func (m *Cell) Find(api string) error
- func (m *Cell) Keywords() (result []string)
- func (m *Cell) Label() string
- func (m *Cell) LongCity() bool
- func (m *Cell) Name() string
- func (m *Cell) NoCategory() bool
- func (m *Cell) NoCity() bool
- func (m *Cell) NoName() bool
- func (m *Cell) NoPostcode() bool
- func (m *Cell) NoState() bool
- func (m *Cell) NoStreet() bool
- func (m *Cell) Postcode() string
- func (m *Cell) Refresh(api string) (err error)
- func (m *Cell) Save() error
- func (m *Cell) State() string
- func (m *Cell) Street() string
- func (Cell) TableName() string
- func (m *Cell) Unknown() bool
- type CellMap
- type Client
- func (m *Client) AclRole() acl.Role
- func (m *Client) AuthInfo() string
- func (m *Client) BeforeCreate(scope *gorm.Scope) error
- func (m *Client) Create() error
- func (m *Client) Delete() (err error)
- func (m *Client) DeleteSessions() (deleted int, err error)
- func (m *Client) Deleted() bool
- func (m *Client) Disabled() bool
- func (m *Client) EnforceAuthTokenLimit() (deleted int)
- func (m *Client) Expires() time.Duration
- func (m *Client) HasName() bool
- func (m *Client) HasRole(role acl.Role) bool
- func (m *Client) HasUID() bool
- func (m *Client) HasUser() bool
- func (m *Client) InvalidSecret(s string) bool
- func (m *Client) Method() authn.MethodType
- func (m *Client) Name() string
- func (m *Client) NewSecret() (secret string, err error)
- func (m *Client) NewSession(c *gin.Context, t authn.GrantType) *Session
- func (m *Client) NoName() bool
- func (m *Client) NoUID() bool
- func (m *Client) Provider() authn.ProviderType
- func (m *Client) Report(skipEmpty bool) (rows [][]string, cols []string)
- func (m *Client) Save() error
- func (m *Client) Scope() string
- func (m *Client) SetExpires(i int64) *Client
- func (m *Client) SetFormValues(frm form.Client) *Client
- func (m *Client) SetMethod(method authn.MethodType) *Client
- func (m *Client) SetName(s string) *Client
- func (m *Client) SetProvider(provider authn.ProviderType) *Client
- func (m *Client) SetRole(role string) *Client
- func (m *Client) SetScope(s string) *Client
- func (m *Client) SetSecret(secret string) (err error)
- func (m *Client) SetTokens(i int64) *Client
- func (m *Client) SetUser(u *User) *Client
- func (m *Client) String() string
- func (Client) TableName() string
- func (m *Client) Tokens() int64
- func (m *Client) UID() string
- func (m *Client) UpdateLastActive(save bool) *Client
- func (m *Client) Updates(values interface{}) error
- func (m *Client) User() *User
- func (m *Client) UserInfo() string
- func (m *Client) Validate() (err error)
- func (m *Client) VerifySecret(s string) bool
- type ClientMap
- type Clients
- type Countries
- type Country
- type CountryMap
- type DbConn
- type Deprecated
- type Details
- func (m *Details) Create() error
- func (m *Details) HasArtist() bool
- func (m *Details) HasCopyright() bool
- func (m *Details) HasKeywords() bool
- func (m *Details) HasLicense() bool
- func (m *Details) HasNotes() bool
- func (m *Details) HasSoftware() bool
- func (m *Details) HasSubject() bool
- func (m *Details) NoArtist() bool
- func (m *Details) NoCopyright() bool
- func (m *Details) NoKeywords() bool
- func (m *Details) NoLicense() bool
- func (m *Details) NoNotes() bool
- func (m *Details) NoSoftware() bool
- func (m *Details) NoSubject() bool
- func (m *Details) Save() error
- func (m *Details) SetArtist(data, src string)
- func (m *Details) SetCopyright(data, src string)
- func (m *Details) SetKeywords(data, src string)
- func (m *Details) SetLicense(data, src string)
- func (m *Details) SetNotes(data, src string)
- func (m *Details) SetSoftware(data, src string)
- func (m *Details) SetSubject(data, src string)
- func (Details) TableName() string
- type DetailsMap
- type Duplicate
- type Duplicates
- type DuplicatesMap
- type Error
- type Errors
- type Face
- func (m *Face) Create() error
- func (m *Face) Delete() error
- func (m *Face) Embedding() face.Embedding
- func (m *Face) Hide() (err error)
- func (m *Face) Match(embeddings face.Embeddings) (match bool, dist float64)
- func (m *Face) MatchId(f Face) string
- func (m *Face) MatchMarkers(faceIds []string) error
- func (m *Face) Matched() error
- func (m *Face) RefreshPhotos() error
- func (m *Face) ResolveCollision(embeddings face.Embeddings) (resolved bool, err error)
- func (m *Face) ReviseMatches() (revised Markers, err error)
- func (m *Face) SetEmbeddings(embeddings face.Embeddings) (err error)
- func (m *Face) SetSubjectUID(subjUid string) (err error)
- func (m *Face) Show() (err error)
- func (m *Face) SkipMatching() bool
- func (Face) TableName() string
- func (m *Face) Update(attr string, value interface{}) error
- func (m *Face) Updates(values interface{}) error
- type FaceMap
- type Faces
- type File
- func (m *File) AddFace(f face.Face, subjUid string)
- func (m *File) AddFaces(faces face.Faces)
- func (m *File) AllFilesMissing() bool
- func (m *File) Base(seq int) string
- func (m *File) BeforeCreate(scope *gorm.Scope) error
- func (m *File) Bitrate() float64
- func (m *File) Bounds() image.Rectangle
- func (m File) Changed(fileSize int64, modTime time.Time) bool
- func (m *File) ColorProfile() string
- func (m *File) Create() error
- func (m *File) Delete(permanently bool) error
- func (m *File) DeletePermanently() error
- func (m *File) DownloadName(n customize.DownloadName, seq int) string
- func (m *File) Found() error
- func (m *File) HasColorProfile(profile colors.Profile) bool
- func (m *File) HasWatermark() bool
- func (m *File) IsAnimated() bool
- func (m *File) IsHDR() bool
- func (m *File) Links() Links
- func (m *File) Markers() *Markers
- func (m *File) MarshalJSON() ([]byte, error)
- func (m File) Missing() bool
- func (m *File) NoJPEG() bool
- func (m *File) NoPNG() bool
- func (m *File) Orientation() int
- func (m *File) OriginalBase(seq int) string
- func (m *File) Panorama() bool
- func (m *File) Projection() projection.Type
- func (m *File) Purge() error
- func (m File) RegenerateIndex()
- func (m *File) RelatedPhoto() *Photo
- func (m *File) Rename(fileName, rootName, filePath, fileBase string) error
- func (m *File) ReplaceHash(newHash string) error
- func (m *File) ResetColorProfile()
- func (m *File) ResetHDR()
- func (m *File) ResolvePrimary() (err error)
- func (m *File) Save() error
- func (m *File) SaveMarkers() (count int, err error)
- func (m *File) SetColorProfile(name string)
- func (m *File) SetDuration(d time.Duration)
- func (m *File) SetFPS(frameRate float64)
- func (m *File) SetFrames(n int)
- func (m *File) SetHDR(isHdr bool)
- func (m *File) SetMediaUTC(taken time.Time)
- func (m *File) SetOrientation(val int, src string) *File
- func (m *File) SetProjection(s string)
- func (m *File) SetSoftware(name string)
- func (m *File) ShareBase(seq int) string
- func (m *File) SubjectNames() []string
- func (File) TableName() string
- func (m *File) Type() fs.Type
- func (m *File) Undelete() error
- func (m *File) UnsavedMarkers() bool
- func (m *File) Update(attr string, value interface{}) error
- func (m *File) UpdatePhotoFaceCount() (c int, err error)
- func (m *File) UpdateVideoInfos() error
- func (m *File) Updates(values interface{}) error
- func (m *File) ValidFaceCount() (c int)
- type FileAppearance
- type FileDimensions
- type FileMap
- type FileShare
- type FileShareMap
- type FileSync
- type FileSyncMap
- type Files
- type Folder
- func (m *Folder) BeforeCreate(scope *gorm.Scope) error
- func (m *Folder) Create() error
- func (m *Folder) RootPath() string
- func (m *Folder) SetForm(f form.Folder) error
- func (m *Folder) SetValuesFromPath()
- func (m *Folder) Slug() string
- func (Folder) TableName() string
- func (m *Folder) Title() string
- func (m *Folder) Updates(values interface{}) error
- type Folders
- type Gorm
- type KeyValue
- type KeyValues
- type Keyword
- type KeywordMap
- type Label
- func (m *Label) AfterCreate(scope *gorm.Scope) error
- func (m *Label) BeforeCreate(scope *gorm.Scope) error
- func (m *Label) Create() error
- func (m *Label) Delete() error
- func (m *Label) Deleted() bool
- func (m *Label) Links() Links
- func (m *Label) Restore() error
- func (m *Label) Save() error
- func (m *Label) SetName(name string)
- func (Label) TableName() string
- func (m *Label) Update(attr string, value interface{}) error
- func (m *Label) UpdateClassify(label classify.Label) error
- type LabelMap
- type LabelPhotoCount
- type LabelPhotoCounts
- type Labels
- type Lens
- type LensMap
- type Lenses
- type Link
- func (m *Link) BeforeCreate(scope *gorm.Scope) error
- func (m *Link) Delete() error
- func (m *Link) Expired() bool
- func (m *Link) ExpiresAt() *time.Time
- func (m *Link) InvalidPassword(password string) bool
- func (m *Link) Redeem() *Link
- func (m *Link) Save() error
- func (m *Link) SetPassword(password string) error
- func (m *Link) SetSlug(s string)
- func (m *Link) String() string
- func (Link) TableName() string
- type LinkMap
- type Links
- type Map
- type Marker
- func (m *Marker) BeforeCreate(scope *gorm.Scope) error
- func (m *Marker) Bottom() float64
- func (m *Marker) ClearFace() (updated bool, err error)
- func (m *Marker) ClearSubject(src string) error
- func (m *Marker) Create() error
- func (m *Marker) DetectedFace() bool
- func (m *Marker) Embeddings() face.Embeddings
- func (m *Marker) Face() (f *Face)
- func (m *Marker) HasFace(f *Face, dist float64) bool
- func (m *Marker) InvalidArea() error
- func (m *Marker) Left() float64
- func (m *Marker) MarshalJSON() ([]byte, error)
- func (m *Marker) Matched() error
- func (m *Marker) Overlap(marker Marker) (x, y float64)
- func (m *Marker) OverlapArea(marker Marker) (area float64)
- func (m *Marker) OverlapPercent(marker Marker) int
- func (m *Marker) RefreshPhotos() error
- func (m *Marker) Right() float64
- func (m *Marker) Save() error
- func (m *Marker) SaveForm(f form.Marker) (changed bool, err error)
- func (m *Marker) SetEmbeddings(e face.Embeddings)
- func (m *Marker) SetFace(f *Face, dist float64) (updated bool, err error)
- func (m *Marker) SetName(name, src string) (changed bool, err error)
- func (m *Marker) Subject() (subj *Subject)
- func (m *Marker) SubjectName() string
- func (m *Marker) Surface() float64
- func (m *Marker) SurfaceRatio(area float64) float64
- func (m *Marker) SyncSubject(updateRelated bool) (err error)
- func (Marker) TableName() string
- func (m *Marker) Top() float64
- func (m *Marker) Uncertainty() int
- func (m *Marker) Unsaved() bool
- func (m *Marker) Update(attr string, value interface{}) error
- func (m *Marker) UpdateFile(file *File) (updated bool)
- func (m *Marker) Updates(values interface{}) error
- func (m *Marker) ValidFace() bool
- type MarkerMap
- type Markers
- func (m *Markers) Append(marker Marker)
- func (m *Markers) AppendWithEmbedding(marker Marker)
- func (m Markers) Contains(other Marker) bool
- func (m Markers) DetectedFaceCount() (count int)
- func (m Markers) Labels() (result classify.Labels)
- func (m Markers) Save(file *File) (count int, err error)
- func (m Markers) SubjectNames() (names []string)
- func (m Markers) Unsaved() bool
- func (m Markers) ValidFaceCount() (count int)
- type MultiStrings
- type Passcode
- func (m *Passcode) Activate() (err error)
- func (m *Passcode) Create() (err error)
- func (m *Passcode) Delete() (err error)
- func (m *Passcode) GenerateCode() (code string, err error)
- func (m *Passcode) Image(size int) (image.Image, error)
- func (m *Passcode) InvalidUID() bool
- func (m *Passcode) Key() *otp.Key
- func (m *Passcode) MarshalJSON() ([]byte, error)
- func (m *Passcode) PNG(size int) *bytes.Buffer
- func (m *Passcode) Save() (err error)
- func (m *Passcode) Secret() string
- func (m *Passcode) SetKey(key *otp.Key) error
- func (m *Passcode) SetKeyURL(keyUrl string) error
- func (m *Passcode) SetUID(uid string) *Passcode
- func (Passcode) TableName() string
- func (m *Passcode) Type() authn.KeyType
- func (m *Passcode) Updates(values interface{}) error
- func (m *Passcode) Valid(code string) (valid bool, recovery bool, err error)
- type PasscodeMap
- type Password
- func (m *Password) Cost() (int, error)
- func (m *Password) Create() error
- func (m *Password) Empty() bool
- func (m *Password) Invalid(s string) bool
- func (m *Password) Save() error
- func (m *Password) SetPassword(pw string, allowHash bool) error
- func (m *Password) String() string
- func (Password) TableName() string
- func (m *Password) Valid(s string) bool
- type PasswordMap
- type People
- type Person
- type Photo
- func (m *Photo) AddLabels(labels classify.Labels)
- func (m *Photo) AdoptPlace(other Photo, source string, force bool)
- func (m *Photo) AllFiles() (files Files)
- func (m *Photo) AllFilesMissing() bool
- func (m *Photo) Approve() error
- func (m *Photo) Archive() error
- func (m *Photo) BeforeCreate(scope *gorm.Scope) error
- func (m *Photo) BeforeSave(scope *gorm.Scope) error
- func (m *Photo) ClassifyLabels() classify.Labels
- func (m *Photo) CountryCode() string
- func (m *Photo) CountryName() string
- func (m *Photo) Create() error
- func (m *Photo) Delete(permanently bool) (files Files, err error)
- func (m *Photo) DeletePermanently() (files Files, err error)
- func (m *Photo) EstimateCountry()
- func (m *Photo) EstimateLocation(force bool)
- func (m *Photo) FaceCount() int
- func (m *Photo) FileTitle() string
- func (m *Photo) Find() *Photo
- func (m *Photo) FirstOrCreate() *Photo
- func (m *Photo) GetDetails() *Details
- func (m *Photo) GetTakenAt() time.Time
- func (m *Photo) GetTakenAtLocal() time.Time
- func (m *Photo) GetTimeZone() string
- func (m *Photo) HasCountry() bool
- func (m *Photo) HasDescription() bool
- func (m *Photo) HasID() bool
- func (m *Photo) HasLatLng() bool
- func (m *Photo) HasLocation() bool
- func (m *Photo) HasPlace() bool
- func (m *Photo) HasTitle() bool
- func (m *Photo) Identical(includeMeta, includeUuid bool) (identical Photos, err error)
- func (m *Photo) IndexKeywords() error
- func (m *Photo) Links() Links
- func (m *Photo) LoadFromYaml(fileName string) error
- func (m *Photo) LoadLocation() error
- func (m *Photo) LoadPlace() error
- func (m *Photo) LocationLoaded() bool
- func (m *Photo) MapKey() string
- func (m *Photo) Merge(mergeMeta, mergeUuid bool) (original Photo, merged Photos, err error)
- func (m *Photo) NoCameraSerial() bool
- func (m *Photo) NoDescription() bool
- func (m *Photo) NoLatLng() bool
- func (m *Photo) NoTitle() bool
- func (m *Photo) Optimize(mergeMeta, mergeUuid, estimatePlace, force bool) (updated bool, merged Photos, err error)
- func (m *Photo) PlaceLoaded() bool
- func (m *Photo) Position() geo.Position
- func (m *Photo) PreloadAlbums()
- func (m *Photo) PreloadFiles()
- func (m *Photo) PreloadKeywords()
- func (m *Photo) PreloadMany()
- func (m *Photo) PrimaryFile() (*File, error)
- func (m *Photo) QualityScore() (score int)
- func (m *Photo) React(user *User, reaction react.Emoji) error
- func (m *Photo) RemoveKeyword(w string) error
- func (m *Photo) RemoveLocation(source string, force bool)
- func (m *Photo) RemoveLocationLabels()
- func (m *Photo) ResolvePrimary() error
- func (m *Photo) Restore() error
- func (m *Photo) Save() error
- func (m *Photo) SaveAsYaml(fileName string) error
- func (m *Photo) SaveDetails() error
- func (m *Photo) SaveLabels() error
- func (m *Photo) SaveLocation() error
- func (m *Photo) SetAltitude(altitude float64, source string)
- func (m *Photo) SetCamera(camera *Camera, source string)
- func (m *Photo) SetCameraSerial(s string)
- func (m *Photo) SetCoordinates(lat, lng float32, altitude float64, source string)
- func (m *Photo) SetDescription(desc, source string)
- func (m *Photo) SetExposure(focalLength int, fNumber float32, iso int, exposure, source string)
- func (m *Photo) SetFavorite(favorite bool) error
- func (m *Photo) SetLens(lens *Lens, source string)
- func (m *Photo) SetPosition(pos geo.Position, source string, force bool)
- func (m *Photo) SetPrimary(fileUid string) (err error)
- func (m *Photo) SetStack(stack int8)
- func (m *Photo) SetTakenAt(taken, local time.Time, zone, source string)
- func (m *Photo) SetTitle(title, source string)
- func (m *Photo) Stackable() bool
- func (m *Photo) String() string
- func (m *Photo) SubjectKeywords() []string
- func (m *Photo) SubjectNames() []string
- func (m *Photo) SyncKeywordLabels() error
- func (Photo) TableName() string
- func (m *Photo) TimeZoneUTC() bool
- func (m *Photo) TrustedLocation() bool
- func (m *Photo) TrustedTime() bool
- func (m *Photo) UnReact(user *User) error
- func (m *Photo) UnknownCamera() bool
- func (m *Photo) UnknownCountry() bool
- func (m *Photo) UnknownLens() bool
- func (m *Photo) UnknownLocation() bool
- func (m *Photo) UnknownPlace() bool
- func (m *Photo) Update(attr string, value interface{}) error
- func (m *Photo) UpdateAndSaveTitle() error
- func (m *Photo) UpdateDateFields()
- func (m *Photo) UpdateDescription(people []string)
- func (m *Photo) UpdateLocation() (keywords []string, labels classify.Labels)
- func (m *Photo) UpdateQuality() error
- func (m *Photo) UpdateTimeZone(zone string)
- func (m *Photo) UpdateTitle(labels classify.Labels) error
- func (m *Photo) Updates(values interface{}) error
- func (m *Photo) Yaml() ([]byte, error)
- func (m *Photo) YamlFileName(originalsPath, sidecarPath string) string
- type PhotoAlbum
- type PhotoAlbumMap
- type PhotoAlbums
- type PhotoKeyword
- type PhotoKeywordMap
- type PhotoLabel
- func (m *PhotoLabel) ClassifyLabel() classify.Label
- func (m *PhotoLabel) Create() error
- func (m *PhotoLabel) Delete() error
- func (m *PhotoLabel) Save() error
- func (PhotoLabel) TableName() string
- func (m *PhotoLabel) Update(attr string, value interface{}) error
- func (m *PhotoLabel) Updates(values interface{}) error
- type PhotoLabels
- type PhotoMap
- type PhotoUser
- type Photos
- type Place
- func (m Place) City() string
- func (m Place) CityContains(text string) bool
- func (m Place) CountryCode() string
- func (m Place) CountryName() string
- func (m *Place) Create() error
- func (m *Place) Delete() (err error)
- func (m Place) District() string
- func (m Place) Label() string
- func (m Place) LongCity() bool
- func (m Place) NoCity() bool
- func (m *Place) Save() error
- func (m Place) State() string
- func (Place) TableName() string
- func (m Place) Unknown() bool
- type PlacesMap
- type Priorities
- type Reaction
- func (m *Reaction) Create() (err error)
- func (m *Reaction) Delete() error
- func (m *Reaction) Emoji() react.Emoji
- func (m *Reaction) InvalidUID() bool
- func (m *Reaction) React(emo react.Emoji) *Reaction
- func (m *Reaction) Save() (err error)
- func (m *Reaction) String() string
- func (Reaction) TableName() string
- func (m *Reaction) Unknown() bool
- type ReactionMap
- type Service
- func (m *Service) Create() error
- func (m *Service) Delete() error
- func (m *Service) Directories() (result fs.FileInfos, err error)
- func (m *Service) LogErr(err error) error
- func (m *Service) ResetErrors(share, sync bool) error
- func (m *Service) Save() error
- func (m *Service) SaveForm(form form.Service) error
- func (m *Service) ShareOriginals() bool
- func (Service) TableName() string
- func (m *Service) Update(attr string, value interface{}) error
- func (m *Service) Updates(values interface{}) error
- type ServiceMap
- type Services
- type Session
- func AddClientSession(clientName string, expiresIn int64, scope string, grantType authn.GrantType, ...) (*Session, error)
- func FindSession(id string) (*Session, error)
- func FindSessionByAuthToken(token string) (*Session, error)
- func FindSessionByRefID(refId string) *Session
- func NewClientSession(clientName string, expiresIn int64, scope string, grantType authn.GrantType, ...) *Session
- func NewSession(expiresIn, timeout int64) (m *Session)
- func SessionStatusForbidden() *Session
- func SessionStatusTooManyRequests() *Session
- func SessionStatusUnauthorized() *Session
- func (m *Session) Abort(c *gin.Context) bool
- func (m *Session) AuthGrantType() authn.GrantType
- func (m *Session) AuthInfo() string
- func (m *Session) AuthToken() string
- func (m *Session) AuthTokenType() string
- func (m *Session) BeforeCreate(scope *gorm.Scope) error
- func (m *Session) Cache()
- func (m *Session) CacheDuration(d time.Duration)
- func (m *Session) ChangePassword(newPw string) (err error)
- func (m *Session) ClearCache()
- func (m *Session) Client() *Client
- func (m *Session) ClientInfo() string
- func (m *Session) ClientRole() acl.Role
- func (m *Session) Create() (err error)
- func (m *Session) Data() (data *SessionData)
- func (m *Session) Delete() error
- func (m *Session) Expired() bool
- func (m *Session) Expires(t time.Time) *Session
- func (m *Session) ExpiresAt() time.Time
- func (m *Session) ExpiresIn() int64
- func (m *Session) HasClient() bool
- func (m *Session) HasRegisteredUser() bool
- func (m *Session) HasShare(uid string) bool
- func (m *Session) HasShares() bool
- func (m *Session) HasUser() bool
- func (m *Session) HttpStatus() int
- func (m *Session) IP() string
- func (m *Session) InsufficientScope(resource acl.Resource, perms acl.Permissions) bool
- func (m *Session) Invalid() bool
- func (m *Session) Is2FA() bool
- func (m *Session) IsClient() bool
- func (m *Session) IsRegistered() bool
- func (m *Session) IsSuperAdmin() bool
- func (m *Session) IsVisitor() bool
- func (m *Session) LogIn(f form.Login, c *gin.Context) (err error)
- func (m *Session) Method() authn.MethodType
- func (m *Session) NoClient() bool
- func (m *Session) NoShares() bool
- func (m *Session) NoUser() bool
- func (m *Session) NotRegistered() bool
- func (m *Session) Provider() authn.ProviderType
- func (m *Session) RedeemToken(token string) (n int)
- func (m *Session) RefreshUser() *Session
- func (m *Session) Regenerate() *Session
- func (m *Session) Report(skipEmpty bool) (rows [][]string, cols []string)
- func (m *Session) Save() error
- func (m *Session) Scope() string
- func (m *Session) SetAuthID(id string) *Session
- func (m *Session) SetAuthToken(authToken string) *Session
- func (m *Session) SetClient(c *Client) *Session
- func (m *Session) SetClientIP(ip string)
- func (m *Session) SetClientName(s string) *Session
- func (m *Session) SetContext(c *gin.Context) *Session
- func (m *Session) SetData(data *SessionData) *Session
- func (m *Session) SetDownloadToken(token string) *Session
- func (m *Session) SetExpiresIn(expiresIn int64) *Session
- func (m *Session) SetGrantType(t authn.GrantType) *Session
- func (m *Session) SetMethod(method authn.MethodType) *Session
- func (m *Session) SetPreviewToken(token string) *Session
- func (m *Session) SetProvider(provider authn.ProviderType) *Session
- func (m *Session) SetScope(scope string) *Session
- func (m *Session) SetTimeout(timeout int64) *Session
- func (m *Session) SetUser(u *User) *Session
- func (m *Session) SetUserAgent(ua string)
- func (m *Session) SharedUIDs() UIDs
- func (Session) TableName() string
- func (m *Session) TimedOut() bool
- func (m *Session) TimeoutAt() time.Time
- func (m *Session) UpdateContext(c *gin.Context) *Session
- func (m *Session) UpdateLastActive(save bool) *Session
- func (m *Session) Updates(values interface{}) error
- func (m *Session) User() *User
- func (m *Session) UserInfo() string
- func (m *Session) UserRole() acl.Role
- func (m *Session) Username() string
- func (m *Session) Valid() bool
- func (m *Session) ValidateScope(resource acl.Resource, perms acl.Permissions) bool
- type SessionData
- type SessionMap
- type Sessions
- type StringMap
- func (s *StringMap) Get(key string) string
- func (s *StringMap) Has(key string) bool
- func (s *StringMap) HasValue(val string) bool
- func (s *StringMap) Key(val string) string
- func (s *StringMap) Keys(val string) []string
- func (s *StringMap) Log(key string) (val string)
- func (s *StringMap) Missing(key string) bool
- func (s *StringMap) Set(key string, val string)
- func (s *StringMap) Unchanged(key string, val string) bool
- func (s *StringMap) Unset(key string)
- type Strings
- type Subject
- func (m *Subject) AfterDelete(tx *gorm.DB) (err error)
- func (m *Subject) AfterFind() (err error)
- func (m *Subject) AfterSave() (err error)
- func (m *Subject) BeforeCreate(scope *gorm.Scope) error
- func (m *Subject) Create() error
- func (m *Subject) Delete() error
- func (m *Subject) DeletePermanently() error
- func (m *Subject) Deleted() bool
- func (m *Subject) IsPerson() bool
- func (m *Subject) Links() Links
- func (m *Subject) MergeWith(other *Subject) error
- func (m *Subject) Person() *Person
- func (m *Subject) RefreshPhotos() error
- func (m *Subject) Restore() error
- func (m *Subject) Save() error
- func (m *Subject) SaveForm(f form.Subject) (changed bool, err error)
- func (m *Subject) SetName(name string) error
- func (Subject) TableName() string
- func (m *Subject) Update(attr string, value interface{}) error
- func (m *Subject) UpdateMarkerNames() error
- func (m *Subject) UpdateName(name string) (*Subject, error)
- func (m *Subject) Updates(values interface{}) error
- func (m *Subject) Visible() bool
- type SubjectMap
- type Subjects
- type Tables
- type UIDs
- type User
- func (m *User) AclRole() acl.Role
- func (m *User) ActivatePasscode() (passcode *Passcode, err error)
- func (m *User) Attr() string
- func (m *User) AuthInfo() string
- func (m *User) BeforeCreate(scope *gorm.Scope) error
- func (m *User) CanLogIn() bool
- func (m *User) CanUpload() bool
- func (m *User) CanUseWebDAV() bool
- func (m *User) Create() (err error)
- func (m *User) DeactivatePasscode() (passcode *Passcode, err error)
- func (m *User) DefaultBasePath() string
- func (m *User) Delete() (err error)
- func (m *User) DeleteSessions(omit []string) (deleted int)
- func (m *User) Details() *UserDetails
- func (m *User) Email() string
- func (m *User) Equal(u *User) bool
- func (m *User) Form() (form.User, error)
- func (m *User) FullName() string
- func (m *User) GenerateTokens(force bool) *User
- func (m *User) GetBasePath() string
- func (m *User) GetUploadPath() string
- func (m *User) Handle() string
- func (m *User) HasProvider(t authn.ProviderType) bool
- func (m *User) HasRole(role acl.Role) bool
- func (m *User) HasShare(uid string) bool
- func (m *User) HasSharedAccessOnly(resource acl.Resource) bool
- func (m *User) HasShares() bool
- func (m *User) InitAccount(initName, initPasswd string) (updated bool)
- func (m *User) InvalidPasscode(code string) bool
- func (m *User) InvalidPassword(s string) bool
- func (m *User) IsAdmin() bool
- func (m *User) IsDeleted() bool
- func (m *User) IsDisabled() bool
- func (m *User) IsExpired() bool
- func (m *User) IsRegistered() bool
- func (m *User) IsSuperAdmin() bool
- func (m *User) IsUnknown() bool
- func (m *User) IsVisitor() bool
- func (m *User) LoadRelated() *User
- func (m *User) Method() authn.MethodType
- func (m *User) NoShares() bool
- func (m *User) NotRegistered() bool
- func (m *User) Passcode(t authn.KeyType) *Passcode
- func (m *User) PrivilegeLevelChange(f form.User) bool
- func (m *User) Provider() authn.ProviderType
- func (m *User) RedeemToken(token string) (n int)
- func (m *User) RefreshShares() *User
- func (m *User) RegenerateTokens() error
- func (m *User) Report(skipEmpty bool) (rows [][]string, cols []string)
- func (m *User) RestoreFromCli(ctx *cli.Context, newPassword string) (err error)
- func (m *User) SameUID(uid string) bool
- func (m *User) Save() (err error)
- func (m *User) SaveForm(f form.User, changePrivileges bool) error
- func (m *User) SaveRelated() *User
- func (m *User) SetAvatar(thumb, thumbSrc string) error
- func (m *User) SetBasePath(dir string) *User
- func (m *User) SetDisplayName(name, src string) *User
- func (m *User) SetFamilyName(name string) *User
- func (m *User) SetFormValues(frm form.User) *User
- func (m *User) SetGivenName(name string) *User
- func (m *User) SetMethod(method authn.MethodType) *User
- func (m *User) SetPassword(password string) error
- func (m *User) SetProvider(t authn.ProviderType) *User
- func (m *User) SetRole(role string) *User
- func (m *User) SetUploadPath(dir string) *User
- func (m *User) SetUsername(login string) (err error)
- func (m *User) SetValuesFromCli(ctx *cli.Context) error
- func (m *User) Settings() *UserSettings
- func (m *User) SharedUIDs() UIDs
- func (m *User) String() string
- func (User) TableName() string
- func (m *User) UID() string
- func (m *User) UpdateLoginTime() *time.Time
- func (m *User) UpdateUsername(login string) (err error)
- func (m *User) Updates(values interface{}) error
- func (m *User) Username() string
- func (m *User) Validate() (err error)
- func (m *User) VerifyPasscode(code string) (valid bool, passcode *Passcode, err error)
- func (m *User) VerifyPassword(s string) bool
- type UserDetails
- func (m *UserDetails) Create() error
- func (m *UserDetails) DisplayName() string
- func (m *UserDetails) HasID() bool
- func (m *UserDetails) Save() error
- func (m *UserDetails) SetFamilyName(name string) *UserDetails
- func (m *UserDetails) SetGivenName(name string) *UserDetails
- func (UserDetails) TableName() string
- func (m *UserDetails) Updates(values interface{}) error
- type UserMap
- type UserSettings
- func (m *UserSettings) Apply(s *customize.Settings) *UserSettings
- func (m *UserSettings) ApplyTo(s *customize.Settings) *customize.Settings
- func (m *UserSettings) Create() error
- func (m *UserSettings) HasID() bool
- func (m *UserSettings) Save() error
- func (UserSettings) TableName() string
- func (m *UserSettings) Updates(values interface{}) error
- type UserShare
- type UserShareMap
- type UserShares
- type Users
Constants ¶
const ( AlbumUID = byte('a') AlbumManual = "album" AlbumFolder = "folder" AlbumMoment = "moment" AlbumMonth = "month" AlbumState = "state" )
const ( SessionPrefix = "sess" UnknownIP = limiter.DefaultIP )
SessionPrefix for RefID.
const ( UserUID = byte('u') UserPrefix = "user" OwnerUnknown = "" UsernameLengthDefault = 1 PasswordLengthDefault = 8 )
User identifier prefixes.
const ( AdminUserName = "admin" AdminDisplayName = "Admin" VisitorDisplayName = "Visitor" UnknownDisplayName = "Unknown" )
Role defaults.
const ( GenderMale = "male" GenderFemale = "female" GenderOther = "other" )
const ( PermNone uint = 1 << iota PermView PermReact PermComment PermUpload PermEdit PermAll )
const ( MySQL = "mysql" SQLite3 = "sqlite3" SQLiteTestDB = ".test.db" SQLiteMemoryDSN = ":memory:?cache=shared" )
Supported test databases.
const ( Unknown = "" UnknownYear = -1 UnknownMonth = -1 UnknownDay = -1 UnknownName = "Unknown" UnknownTitle = UnknownName UnknownID = "zz" )
Defaults.
const ( MediaUnknown = "" MediaImage = string(media.Image) MediaRaw = string(media.Raw) MediaAnimated = string(media.Animated) MediaLive = string(media.Live) MediaVideo = string(media.Video) MediaVector = string(media.Vector) )
Media types.
const ( RootUnknown = "" RootOriginals = "/" RootExamples = "examples" RootSidecar = "sidecar" RootImport = "import" RootPath = "/" )
Base folders.
const ( Created = "created" Updated = "updated" Deleted = "deleted" )
Event types.
const ( IsStacked int8 = 1 IsStackable int8 = 0 IsUnstacked int8 = -1 )
Stacking states.
const ()
const ( FileSyncNew = "new" FileSyncIgnore = "ignore" FileSyncExists = "exists" FileSyncDownloaded = "downloaded" FileSyncUploaded = "uploaded" )
const ( LinkUID = byte('s') LinkPrefix = "link" )
LinkPrefix for RefID.
const ( MarkerUnknown = "" MarkerFace = "face" // MarkerType for faces (implemented). MarkerLabel = "label" // MarkerType for labels (todo). )
const ( SyncStatusRefresh = "refresh" SyncStatusDownload = "download" SyncStatusUpload = "upload" SyncStatusSynced = "synced" )
const ( SrcAuto = "" // Prio 1 SrcDefault = "default" // Prio 1 SrcEstimate = "estimate" // Prio 2 SrcName = "name" // Prio 4 SrcYaml = "yaml" // Prio 8 SrcLDAP = "ldap" // Prio 8 SrcLocation = classify.SrcLocation // Prio 8 SrcMarker = "marker" // Prio 8 SrcImage = classify.SrcImage // Prio 8 SrcKeyword = classify.SrcKeyword // Prio 16 SrcMeta = "meta" // Prio 16 SrcXmp = "xmp" // Prio 32 SrcManual = "manual" // Prio 64 SrcAdmin = "admin" // Prio 128 )
Data source names.
const Accuracy1Km = 1000
const (
ClientUID = byte('c')
)
ClientUID is the unique ID prefix.
const (
ClipStringType = 64
)
const Day = time.Hour * 24
Day specified as time.Duration to improve readability.
const (
FileUID = byte('f')
)
const (
LabelUID = byte('l')
)
const PermDefault uint = 0
const (
PhotoUID = byte('p')
)
const (
)SharePrefix for RefID.
const (
SubjPerson = "person" // SubjType for people.
)
const TokenConfig = "__config__"
const TokenPublic = "public"
Variables ¶
var (
PasscodeFixtureAlice, _ = NewPasscode("uqxetse3cy5eo9z2", "otpauth://totp/PhotoPrism:alice?algorithm=SHA1&digits=6&issuer=PhotoPrism%20Pro&period=30&secret=LKBTPGHABW2BVQVIROIGFTLQV4IRBXMV", "0t37foocgp2w")
PasscodeFixtureJane, _ = NewPasscode("usamyuogp49vd4lh", "otpauth://totp/PhotoPrism:jane?algorithm=SHA1&digits=6&issuer=PhotoPrism%20Pro&period=30&secret=RUYYIDJZBJLKD6OL6WFBJO6PXEZOYIZW", "0wg68oc6jg92")
PasscodeFixtures = PasscodeMap{
"alice": *PasscodeFixtureAlice,
"jane": *PasscodeFixtureJane,
}
)
var Admin = User{ ID: 1, UserName: AdminUserName, AuthProvider: authn.ProviderLocal.String(), UserRole: acl.RoleAdmin.String(), DisplayName: AdminDisplayName, SuperAdmin: true, CanLogin: true, WebDAV: true, CanInvite: true, InviteToken: GenerateToken(), PreviewToken: GenerateToken(), DownloadToken: GenerateToken(), }
Admin is the default admin user.
var AlbumFixtures = AlbumMap{ "christmas2030": { ID: 1000000, AlbumUID: "as6sg6bxpogaaba7", AlbumSlug: "christmas-2030", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Christmas 2030", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "Wonderful Christmas", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "oldest", AlbumTemplate: "", AlbumCountry: UnknownID, AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "holiday-2030": { ID: 1000001, AlbumUID: "as6sg6bxpogaaba8", AlbumSlug: "holiday-2030", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Holiday 2030", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "Wonderful Christmas Holiday", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "newest", AlbumTemplate: "", AlbumCountry: UnknownID, AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: true, AlbumPrivate: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "berlin-2019": { ID: 1000002, AlbumUID: "as6sg6bxpogaaba9", AlbumSlug: "berlin-2019", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Berlin 2019", AlbumLocation: "Berlin", AlbumCategory: "City", AlbumCaption: "", AlbumDescription: "We love Berlin 🌿!", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "oldest", AlbumTemplate: "", AlbumCountry: "", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "april-1990": { ID: 1000003, AlbumUID: "as6sg6bipogaaba1", AlbumSlug: "april-1990", AlbumPath: "1990/04", AlbumType: AlbumFolder, AlbumTitle: "April 1990", AlbumLocation: "", AlbumCategory: "Friends", AlbumCaption: "", AlbumDescription: "Spring is the time of year when many things change.", AlbumNotes: "", AlbumFilter: "path:\"1990/04\" public:true", AlbumOrder: "added", AlbumTemplate: "", AlbumCountry: "ca", AlbumYear: 1990, AlbumMonth: 4, AlbumDay: 11, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "import": { ID: 1000004, AlbumUID: "as6sg6bitoga0004", AlbumSlug: "import", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Import Album", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "ca", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "emptyMoment": { ID: 1000005, AlbumUID: "as6sg6bitoga0005", AlbumSlug: "empty-moment", AlbumPath: "", AlbumType: AlbumMoment, AlbumTitle: "Empty Moment", AlbumLocation: "Favorite Park", AlbumCategory: "Fun", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "public:true country:at year:2016", AlbumOrder: "oldest", AlbumTemplate: "", AlbumCountry: "at", AlbumYear: 2016, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "2016-04": { ID: 1000006, AlbumUID: "as6sg6bipogaabj8", AlbumSlug: "2016-04", AlbumPath: "2016/04", AlbumType: AlbumFolder, AlbumTitle: "April 2016", AlbumLocation: "", AlbumCategory: "Fun", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "path:\"2016/04\" public:true", AlbumOrder: "added", AlbumTemplate: "", AlbumCountry: UnknownID, AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "september-2021": { ID: 1000007, AlbumUID: "as6sg6bipogaabj9", AlbumSlug: "september-2021", AlbumPath: "", AlbumType: AlbumMonth, AlbumTitle: "September 2021", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "public:true year:2021 month:9", AlbumOrder: "newest", AlbumTemplate: "", AlbumCountry: UnknownID, AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "california-usa": { ID: 1000008, AlbumUID: "as6sg6bipogaab11", AlbumSlug: "california-usa", AlbumPath: "", AlbumType: AlbumState, AlbumTitle: "California / USA", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "public:true country:us state:California", AlbumOrder: "newest", AlbumTemplate: "", AlbumCountry: "us", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "california-duplicate-1": { ID: 1000009, AlbumUID: "as6sg6bipotaab12", AlbumSlug: "california-usa", AlbumPath: "", AlbumType: AlbumState, AlbumTitle: "California / USA", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "country:us state:California", AlbumOrder: "newest", AlbumTemplate: "", AlbumCountry: "us", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "california-duplicate-2": { ID: 1000010, AlbumUID: "as6sg6bipotaab19", AlbumSlug: "california", AlbumPath: "", AlbumType: AlbumState, AlbumTitle: "California", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "public:true country:us state:California", AlbumOrder: "newest", AlbumTemplate: "", AlbumCountry: "us", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, CreatedAt: time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "&ilikefood": { ID: 1000011, AlbumUID: "as6sg6bipotaab19", AlbumSlug: "&ilikefood", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "&IlikeFood", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "i-love-%-dog": { ID: 1000012, AlbumUID: "as6sg6bipotaab20", AlbumSlug: "i-love-%-dog", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "I love % dog", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "%gold": { ID: 1000013, AlbumUID: "as6sg6bipotaab21", AlbumSlug: "%gold", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "%gold", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "sale%": { ID: 1000014, AlbumUID: "as6sg6bipotaab22", AlbumSlug: "sale%", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "sale%", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "pets&dogs": { ID: 1000015, AlbumUID: "as6sg6bipotaab23", AlbumSlug: "pest&dogs", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Pets & Dogs", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "light&": { ID: 1000016, AlbumUID: "as6sg6bipotaab24", AlbumSlug: "light&", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Light&", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "'family": { ID: 1000017, AlbumUID: "as6sg6bipotaab25", AlbumSlug: "'family", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "'Family", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "father's-day": { ID: 1000018, AlbumUID: "as6sg6bipotaab26", AlbumSlug: "father's-day", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Father's Day", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "ice-cream'": { ID: 1000019, AlbumUID: "as6sg6bipotaab27", AlbumSlug: "ice-cream'", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Ice Cream'", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "*forrest": { ID: 1000020, AlbumUID: "as6sg6bipotaab28", AlbumSlug: "*forrest", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "*Forrest", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "my*kids": { ID: 1000021, AlbumUID: "as6sg6bipotaab29", AlbumSlug: "my*kids", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "My*Kids", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "yoga***": { ID: 1000022, AlbumUID: "as6sg6bipotaab30", AlbumSlug: "yoga***", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Yoga***", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "|banana": { ID: 1000023, AlbumUID: "as6sg6bipotaab31", AlbumSlug: "|banana", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "|Banana", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "blue|": { ID: 1000024, AlbumUID: "as6sg6bipotaab33", AlbumSlug: "blue|", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Blue|", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "345-shirt": { ID: 1000025, AlbumUID: "as6sg6bipotaab34", AlbumSlug: "345-shirt", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "345 Shirt", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "color-555-blue": { ID: 1000026, AlbumUID: "as6sg6bipotaab35", AlbumSlug: "color-555-blue", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Color555 Blue", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "route-66": { ID: 1000027, AlbumUID: "as6sg6bipotaab36", AlbumSlug: "route-66", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Route 66", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "red|green": { ID: 1000028, AlbumUID: "as6sg6bipotaab32", AlbumSlug: "red|green", AlbumPath: "", AlbumType: AlbumManual, AlbumTitle: "Red|Green", AlbumLocation: "", AlbumCategory: "", AlbumCaption: "", AlbumDescription: "", AlbumNotes: "", AlbumFilter: "", AlbumOrder: "name", AlbumTemplate: "", AlbumCountry: "zz", AlbumYear: 0, AlbumMonth: 0, AlbumDay: 0, AlbumFavorite: false, AlbumPrivate: false, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, }
var Auth = func(f form.Login, s *Session, c *gin.Context) (user *User, provider authn.ProviderType, method authn.MethodType, err error) { nameName := f.CleanUsername() user = FindUserByName(nameName) provider, method, err = AuthLocal(user, f, s, c) if err != nil { return user, provider, method, err } user.UpdateLoginTime() return user, provider, method, err }
Auth checks if the credentials are valid and returns the user and authentication provider.
var CameraFixtures = CameraMap{ "apple-iphone-se": { ID: 1000000, CameraSlug: "apple-iphone-se", CameraName: "Apple iPhone SE", CameraMake: "Apple", CameraModel: "iPhone SE", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "canon-eos-5d": { ID: 1000001, CameraSlug: "canon-eos-5d", CameraName: "Canon EOS 5D", CameraMake: "Canon", CameraModel: "EOS 5D", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "canon-eos-7d": { ID: 1000002, CameraSlug: "canon-eos-7d", CameraName: "Canon EOS 7D", CameraMake: "Canon", CameraModel: "EOS 7D", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "canon-eos-6d": { ID: 1000003, CameraSlug: "canon-eos-6d", CameraName: "Canon EOS 6D", CameraModel: "EOS 6D", CameraMake: "Canon", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "apple-iphone-6": { ID: 1000004, CameraSlug: "apple-iphone-6", CameraName: "Apple iPhone 6", CameraMake: "Apple", CameraModel: "iPhone 6", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "apple-iphone-7": { ID: 1000005, CameraSlug: "apple-iphone-7", CameraName: "Apple iPhone 7", CameraMake: "Apple", CameraModel: "iPhone 7", CameraType: "", CameraDescription: "", CameraNotes: "", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, }
var CameraMakes = map[string]string{
"acer": "Acer",
"ACER": "Acer",
"asus": "ASUS",
"Asus": "ASUS",
"ASUS_AI2302": "ASUS",
"apple": "Apple",
"Casio": "CASIO",
"CASIO COMPUTER": "CASIO",
"CASIO COMPUTER CO": "CASIO",
"CASIO COMPUTER CO.": "CASIO",
"CASIO COMPUTER CO.,LTD": "CASIO",
"CASIO COMPUTER CO.,LTD.": "CASIO",
"CASIO CORPORATION": "CASIO",
"Fujifilm": "FUJIFILM",
"FUJIFILM CORPORATION": "FUJIFILM",
"Garmin-Asus": "Garmin",
"google": "Google",
"GOOGLE": "Google",
"U63667E4U111368": "Google",
"Hewlett-Packard": "HP",
"htc": "HTC",
"Kodak": "KODAK",
"EASTMAN KODAK": "KODAK",
"EASTMAN KODAK COMPANY": "KODAK",
"Leica Camera AG": "Leica",
"LEICA": "Leica",
"LG Electronics": "LG",
"LGE": "LG",
"lge": "LG",
"Minolta Co., Ltd.": "Minolta",
"MINOLTA CO.,LTD": "Minolta",
"KONICA MINOLTA": "Konica Minolta",
"Motorol": "Motorola",
"Motorola Mobility": "Motorola",
"motorola": "Motorola",
"samsung": "Samsung",
"SAMSUNG": "Samsung",
"Samsung Electronics": "Samsung",
"SAMSUNG TECHWIN Co.": "Samsung",
"SAMSUNG TECHWIN": "Samsung",
"Samsung Techwin": "Samsung",
"sharp": "SHARP",
"Sharp": "SHARP",
"sigma": "SIGMA",
"Sigma": "SIGMA",
"OLYMPUS": "Olympus",
"OLYMPUS CORPORATION": "Olympus",
"OLYMPUS DIGITAL CAMERA": "Olympus",
"OLYMPUS IMAGING CORP.": "Olympus",
"OLYMPUS OPTICAL CO.,LTD": "Olympus",
"ONEPLUS": "OnePlus",
"Nikon": "NIKON",
"NIKON CORPORATION": "NIKON",
"Huawei": "HUAWEI",
"RaspberryPi": "Raspberry Pi",
"RICOH IMAGING COMPANY, LTD.": "RICOH",
"Ricoh": "RICOH",
"Pentax": "PENTAX",
"PENTAX Corporation": "PENTAX",
"PENTAX CORPORATION": "PENTAX",
"Blackberry": "BlackBerry",
"Research In Motion": "BlackBerry",
"Sony": "SONY",
"VenTrade GmbH, Germany": "VenTrade",
}
CameraMakes maps internal make identifiers to normalized names.
var CameraModels = map[string]string{}/* 206 elements not displayed */
CameraModels maps internal model identifiers to normalized names.
var CategoryFixtures = map[string]Category{ "flower_landscape": { LabelID: 1000001, Label: LabelFixtures.Pointer("flower"), CategoryID: 1000000, Category: LabelFixtures.Pointer("landscape"), }, }
var CellFixtures = CellMap{ "mexico": { ID: s2.TokenPrefix + "85d1ea7d382c", PlaceID: PlaceFixtures.Get("mexico").ID, CellName: "Adosada Platform", CellCategory: "botanical garden", Place: PlaceFixtures.Pointer("mexico"), CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "caravan park": { ID: s2.TokenPrefix + "1ef75a71a36c", PlaceID: s2.TokenPrefix + "1ef75a71a36c", Place: &Place{ ID: s2.TokenPrefix + "1ef75a71a36", PlaceLabel: "Mandeni, KwaZulu-Natal, South Africa", PlaceCity: "Mandeni", PlaceState: "KwaZulu-Natal", PlaceCountry: "za", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, CellName: "Lobotes Caravan Park", CellCategory: "camping", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "zinkwazi": { ID: s2.TokenPrefix + "1ef744d1e28c", PlaceID: PlaceFixtures.Get("zinkwazi").ID, Place: PlaceFixtures.Pointer("zinkwazi"), CellName: "Zinkwazi Beach", CellCategory: "beach", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "hassloch": { ID: s2.TokenPrefix + "1ef744d1e280", PlaceID: PlaceFixtures.Get("holidaypark").ID, Place: PlaceFixtures.Pointer("holidaypark"), CellName: "Holiday Park", CellCategory: "park", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "emptyNameLongCity": { ID: s2.TokenPrefix + "1ef744d1e281", PlaceID: PlaceFixtures.Get("emptyNameLongCity").ID, Place: PlaceFixtures.Pointer("emptyNameLongCity"), CellName: "", CellCategory: "botanical garden", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "emptyNameShortCity": { ID: s2.TokenPrefix + "1ef744d1e282", PlaceID: PlaceFixtures.Get("emptyNameShortCity").ID, Place: PlaceFixtures.Pointer("emptyNameShortCity"), CellName: "", CellCategory: "botanical garden", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "veryLongLocName": { ID: s2.TokenPrefix + "1ef744d1e283", PlaceID: PlaceFixtures.Get("veryLongLocName").ID, Place: PlaceFixtures.Pointer("veryLongLocName"), CellName: "longlonglonglonglonglonglonglonglonglonglonglonglongName", CellCategory: "cape", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "mediumLongLocName": { ID: s2.TokenPrefix + "1ef744d1e283", PlaceID: PlaceFixtures.Get("mediumLongLocName").ID, Place: PlaceFixtures.Pointer("mediumLongLocName"), CellName: "longlonglonglonglonglongName", CellCategory: "botanical garden", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "Neckarbrücke": { ID: s2.TokenPrefix + "1ef744d1e284", PlaceID: PlaceFixtures.Get("Germany").ID, Place: PlaceFixtures.Pointer("Germany"), CellName: "Neckarbrücke", CellCategory: "", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, }
var ClientFixtures = ClientMap{ "alice": { ClientUID: "cs5gfen1bgxz7s9i", UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, ClientName: "Alice", ClientRole: acl.RoleClient.String(), ClientType: authn.ClientConfidential, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), AuthScope: "*", AuthExpires: unix.Day, AuthTokens: -1, AuthEnabled: true, LastActive: 0, // contains filtered or unexported fields }, "bob": { ClientUID: "cs5gfsvbd7ejzn8m", UserUID: UserFixtures.Pointer("bob").UserUID, UserName: UserFixtures.Pointer("bob").UserName, ClientName: "Bob", ClientRole: acl.RoleClient.String(), ClientType: authn.ClientPublic, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), AuthScope: "*", AuthExpires: 0, AuthTokens: -1, AuthEnabled: false, LastActive: 0, // contains filtered or unexported fields }, "metrics": { ClientUID: "cs5cpu17n6gj2qo5", UserUID: "", UserName: "", ClientName: "Monitoring", ClientRole: acl.RoleClient.String(), ClientType: authn.ClientConfidential, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), AuthScope: "metrics", AuthExpires: unix.Hour, AuthTokens: 2, AuthEnabled: true, LastActive: 0, // contains filtered or unexported fields }, "Unknown": { ClientUID: "cs5cpu17n6gj2jh6", UserUID: "", UserName: "", ClientName: "Unknown", ClientRole: acl.RoleNone.String(), ClientType: authn.ClientUnknown, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodUndefined.String(), AuthScope: "*", AuthExpires: unix.Hour, AuthTokens: 2, AuthEnabled: true, LastActive: 0, // contains filtered or unexported fields }, "disabled": { ClientUID: "cs5cpu17n6gj2gf7", UserUID: "", UserName: "", ClientName: "Deleted Monitoring", ClientRole: acl.RoleClient.String(), ClientType: authn.ClientConfidential, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), AuthScope: "metrics", AuthExpires: unix.Hour, AuthTokens: 2, AuthEnabled: false, LastActive: 0, // contains filtered or unexported fields }, "analytics": { ClientUID: "cs7pvt5h8rw9aaqj", UserUID: "", UserName: "", ClientName: "Analytics", ClientRole: acl.RoleClient.String(), ClientType: authn.ClientConfidential, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), AuthScope: "statistics", AuthExpires: unix.Hour, AuthTokens: 2, AuthEnabled: true, LastActive: 0, // contains filtered or unexported fields }, "invalid_method": { ClientUID: "cs7pvt5h8rw9he34", UserUID: "", UserName: "", ClientName: "Invalid", ClientRole: acl.RoleNone.String(), ClientType: authn.ClientUnknown, ClientURL: "", CallbackURL: "", AuthProvider: authn.ProviderClient.String(), AuthMethod: "invalid", AuthScope: "*", AuthExpires: unix.Hour, AuthTokens: 2, AuthEnabled: true, LastActive: 0, // contains filtered or unexported fields }, }
var CountryFixtures = CountryMap{ "germany": { ID: "de", CountrySlug: "germany", CountryName: "Germany", CountryDescription: "Country description", CountryNotes: "Country Notes", CountryPhoto: nil, CountryPhotoID: 0, New: false, }, }
var DefaultPasswordCost = 12
DefaultPasswordCost specifies the cost of the BCrypt Password Hash, see https://github.com/photoprism/photoprism/issues/3718.
var DeprecatedTables = Deprecated{
"subjects_dev1",
"subjects_dev2",
"subjects_dev3",
"subjects_dev4",
"subjects_dev5",
"subjects_dev6",
"subjects_dev7",
"subjects_dev8",
"subjects_dev9",
"subjects_dev10",
"markers_dev1",
"markers_dev2",
"markers_dev3",
"markers_dev4",
"markers_dev5",
"markers_dev6",
"markers_dev7",
"markers_dev8",
"markers_dev9",
"markers_dev10",
"faces_dev1",
"faces_dev2",
"faces_dev3",
"faces_dev4",
"faces_dev5",
"faces_dev6",
"faces_dev7",
"faces_dev8",
"faces_dev9",
"faces_dev10",
"reactions_dev",
"albums_users_dev",
"photos_users_dev",
"auth_sessions_dev",
"auth_shares_dev",
"auth_users_details_dev",
"auth_users_dev",
"auth_users_logins_dev",
"auth_users_settings_dev",
"auth_tokens_dev",
"addresses",
}
DeprecatedTables lists deprecated development database tables, so that they can be removed.
var DetailsFixtures = DetailsMap{ "lake": { PhotoID: 1000000, Keywords: "nature, frog", Notes: "notes", Subject: "Lake", Artist: "Hans", Copyright: "copy", License: "MIT", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), KeywordsSrc: "meta", NotesSrc: "manual", SubjectSrc: "meta", ArtistSrc: "meta", CopyrightSrc: "manual", LicenseSrc: "manual", }, "blacklist": { PhotoID: 1000001, Keywords: "screenshot, info", Notes: "notes", Subject: "Blacklist", Artist: "Hans", Copyright: "copy", License: "MIT", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), KeywordsSrc: "", NotesSrc: "", SubjectSrc: "meta", ArtistSrc: "meta", CopyrightSrc: "manual", LicenseSrc: "manual", }, "bridge": { PhotoID: 1000003, Keywords: "bridge, nature", Notes: "Some Notes!@#$", Subject: "Bridge", Artist: "Jens Mander", Copyright: "Copyright 2020", License: report.NotAssigned, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), KeywordsSrc: "meta", NotesSrc: "manual", SubjectSrc: "meta", ArtistSrc: "meta", CopyrightSrc: "manual", LicenseSrc: "manual", }, }
var DownloadToken = NewStringMap(Strings{})
var Entities = Tables{ migrate.Migration{}.TableName(): &migrate.Migration{}, migrate.Version{}.TableName(): &migrate.Version{}, Error{}.TableName(): &Error{}, Password{}.TableName(): &Password{}, Passcode{}.TableName(): &Passcode{}, User{}.TableName(): &User{}, UserDetails{}.TableName(): &UserDetails{}, UserSettings{}.TableName(): &UserSettings{}, Session{}.TableName(): &Session{}, Client{}.TableName(): &Client{}, Service{}.TableName(): &Service{}, Folder{}.TableName(): &Folder{}, Duplicate{}.TableName(): &Duplicate{}, File{}.TableName(): &File{}, FileShare{}.TableName(): &FileShare{}, FileSync{}.TableName(): &FileSync{}, Photo{}.TableName(): &Photo{}, PhotoUser{}.TableName(): &PhotoUser{}, Details{}.TableName(): &Details{}, Place{}.TableName(): &Place{}, Cell{}.TableName(): &Cell{}, Camera{}.TableName(): &Camera{}, Lens{}.TableName(): &Lens{}, Country{}.TableName(): &Country{}, Album{}.TableName(): &Album{}, AlbumUser{}.TableName(): &AlbumUser{}, PhotoAlbum{}.TableName(): &PhotoAlbum{}, Label{}.TableName(): &Label{}, Category{}.TableName(): &Category{}, PhotoLabel{}.TableName(): &PhotoLabel{}, Keyword{}.TableName(): &Keyword{}, PhotoKeyword{}.TableName(): &PhotoKeyword{}, Link{}.TableName(): &Link{}, Subject{}.TableName(): &Subject{}, Face{}.TableName(): &Face{}, Marker{}.TableName(): &Marker{}, Reaction{}.TableName(): &Reaction{}, UserShare{}.TableName(): &UserShare{}, }
Entities contains database entities and their table names.
var FaceFixtures = FaceMap{ "john-doe": Face{ ID: "PN6QO5INYTUSAATOFL43LL2ABAV5ACZK", EmbeddingJSON: []byte("[-0.015105677000169373,-0.0005582744874266051,0.0480268501406662,-0.03601115760977173,0.0005837739331054689,0.014168089953522492,-0.03945336629091645,-0.02582770810183487,0.020898761370506287,0.049166841007919314,0.021960500727076723,-0.019064476425213243,0.02198730232398834,0.0006670523258575441,0.03028046368291855,0.00649638007861023,-0.01584042613295212,0.00530397326763153,-0.06404373233350608,0.03889477750802231,-0.0365899261901268,0.0360787547656456,0.07579429823342132,0.039115246617597965,-0.0777424514863777,0.035950400633987425,-0.01904672616637268,0.031240118709612276,-0.01142303718094612,0.021169409966093445,-0.04066713893357315,0.048964979162612915,-0.016256413336937715,-0.02378354035888214,-0.020449917192553707,-0.02040227800516968,0.06541690078029251,0.016761249534914705,0.03380005035063598,-0.10038679582336427,0.043679719882033535,0.03128701222455444,0.012390233834701538,0.05524386205410767,0.021537026348385238,-0.016655772903281404,0.007295974349593354,-0.000005785312992858532,-0.047790829845092773,0.017440576051146697,-0.06534523391118621,0.06609203363401413,0.03238222320728302,0.006614993631034087,-0.054927458582173155,0.030833110256991578,-0.0056855157837505345,-0.007370784518985901,0.0013351148462055202,0.047366844577483365,0.04135019693103943,-0.02510304556774292,-0.05305447016115189,-0.03180977055114746,0.012452435193779296,-0.031038226814250947,-0.06159064720963287,0.057565623878417974,0.006987256155133055,0.10980759767712402,0.0014624758511650082,0.04941792959784012,0.02249399537556839,-0.007318808567618561,0.011643714617645264,-0.033996864613095854,-0.10756568994960479,-0.008790611639031982,-0.06265860528228379,-0.03834362793397904,-0.007061803256170654,-0.02360514984864273,-0.030340688408576965,-0.006711280069554138,-0.026063804222563172,-0.06257436487065124,-0.03489222804085922,0.023775160926244356,-0.05953325934691238,-0.0015599671627334586,0.04257923482005539,-0.02072714042014847,0.042186514202873227,0.03334131403590164,-0.04231802868860626,-0.03938228046069336,0.04991599600813751,0.005012853217630309,0.02852926982268677,-0.04592934168044281,-0.0446876756071167,0.05780069138760376,-0.06523845092017364,0.03691154157677917,0.0048527119732078555,-0.008498008999919891,-0.06625776342607116,0.013960302090915604,-0.029253019821994783,0.02477269871644745,0.010155390116101837,0.03100301871340158,-0.07413353268207168,0.01750142506529999,0.03461705135130691,0.04982243958808899,0.00851692480498886,-0.002991416728403473,0.01759018484255066,-0.07281463888115311,0.07669263036101531,0.0287119138326683,-0.0011225693401481635,-0.022214332482351686,0.08318748801869094,0.06656315672954559,0.0034995880579914086,0.04958693578422928,-0.027691547638692474,-0.03405751975708465,-0.062014044191894525,-0.0004367024225837711,0.007944679561768342,0.03339219333856888,-0.04039564807562256,-0.06730881179145813,-0.07099339792601776,-0.033052287483390806,-0.050682249608245855,0.011561693050074387,-0.09867453691846315,-0.02774825273226944,0.010811723733195496,0.02427582366474533,-0.02078586645137596,0.01433492286357048,0.026900254564299775,-0.05306856266233825,-0.007102414552368164,-0.02275204349867813,-0.03211197205357055,-0.014967170406674196,0.022953155306690905,-0.03644228327174301,0.012341418549354555,0.020687427985451052,-0.09076456366364288,0.031082595049208066,0.04102866745965958,-0.02306090883122635,0.027812227150472258,-0.013119295590370941,-0.004158771480469893,-0.007025444076653517,0.009275999232177735,-0.039368103392872236,0.01910143328294525,-0.05630273885418091,0.055353015055413055,-0.0014070097039474495,0.042947509516956334,0.0024906970417621615,-0.03561797166536834,0.006505803784743882,0.006665486497595978,-0.006378142944042969,0.05448368035679932,0.07332471840206146,-0.0014946864171386718,-0.008414893981474686,-0.00006825545633163364,0.02668107540572357,-0.024539537215417483,-0.07293688736830901,0.06344162595002364,-0.033607367797969814,-0.01986442914540863,0.026089177944317626,-0.022147074482840423,-0.08048881567908478,0.050637503425783534,-0.06346700348937226,-0.015700777833213043,-0.04264569287159348,-0.002655311902906036,-0.03654008229608307,-0.007810925734401397,-0.0435794361814415,-0.011699671276438905,0.057055175916534424,0.04544679800120926,0.037604382557088464,-0.02941164037058258,-0.05797836845658112,-0.06812897444572831,0.08032934278161621,-0.01328043643980198,-0.08971531949739076,0.0065821178142807,0.008762343139662933,0.020370728524544524,0.03974483299145508,-0.0051898651247510525,-0.0031604766306224056,0.07640609197084428,0.038082580676622776,0.05806105880397415,-0.014124205852999725,0.007738546446239335,-0.04230980231715012,-0.01059650656994934,0.010447661136037827,-0.04688999712561989,-0.06730292583744431,0.016754640387374113,-0.011607031355502319,0.023310211609113313,0.08731236136631013,0.05903231309516144,0.04731763803346557,-0.02573253768891525,-0.06296218933005523,0.04012439522837066,0.025853857002137298,0.007843758596900636,0.046765933136711124,-0.0018710897452026364,-0.005570995783544921,0.0005954957864215851,0.029306860778232576,0.03074633266388397,0.02318916068950821,-0.011157762649505614,-0.013694216304312515,0.015094815793841173,-0.008802384161989595,0.032486344160458376,0.05804673958212662,-0.006112833595197296,0.006215988022933197,0.04096582699106979,-0.03384389014125061,-0.01596561475662651,-0.010684742677253074,0.07758476984541932,-0.005856569876429291,0.024524756417617796,-0.007312638971189117,-0.017082938609609223,0.0011795664558563231,0.0134139216274601,-0.09028529851032258,-0.039419858379217534,0.022968888672964094,0.004521465961741944,-0.06451345260910797,-0.04178954661956787,-0.024166587057536396,0.012531514465320588,0.02323170220531845,0.04000117979464722,0.03214717679358063,0.056948825253341676,0.05539476134574128,0.013257249967432405,-0.0001733097061775205,-0.01234630922813568,0.0645579352090454,0.029838023576596068,-0.06455350567951279,-0.013353814450276946,0.0018903859134303275,0.0483956355803524,-0.004311148732519531,-0.014597871326852417,-0.006853384533165969,0.04057120248826332,0.007104495398272705,-0.027431613068233492,-0.09228961372112274,-0.06612821609320907,0.0607875549739154,-0.026342729023012542,0.06454961398086471,0.004993419094538574,-0.031680751000938416,0.007030828889411162,-0.010022039687029268,-0.05428986021428299,0.017565788880432403,0.04025441392524147,0.009023673541622163,0.009042981797892759,0.019972970522025298,0.058956133531005865,-0.008320068883990478,0.02986469039841843,-0.053139615835475926,-0.024647880182499998,0.007398424838289642,0.09050773480216218,-0.015264475845877838,-0.06385353173209762,0.016500261584825135,0.02948610469222336,-0.02504260549529915,-0.018835162326039122,0.050848700451684575,-0.03199441179409637,-0.019780421813622284,-0.027626615849293518,-0.03419102001171112,-0.014344497819357758,0.07330804638220215,-0.02937739203966522,-0.00813064343063736,-0.01626787766690979,-0.011862281442715148,0.01708495452203865,-0.07908452169694902,0.023940025203119657,-0.13222904368403626,0.048117978374713134,-0.017696039928765107,0.004759198936071777,0.01974903359319687,0.010760925580199815,-0.005599215416766357,0.0457550643199234,-0.01929695170711136,-0.007629453917987061,-0.010118543879554747,0.015504727550686645,0.03245994598398285,0.05049195915774918,-0.06673184178328552,-0.01761782965561676,0.008011984665633392,0.023189021348875426,0.06720727829968262,0.010742643820915984,-0.03080342023261017,-0.050128828091691585,0.04935064662135315,0.012293871085033494,0.05639020959568253,-0.02957390940026932,-0.03676535286145477,-0.004796114565882111,0.05806600428461456,0.018004375270679475,-0.020827009949742126,-0.0336628292589238,-0.0018759192028083797,-0.06518067211773682,-0.02731396445179306,-0.03430377823384857,0.016512887052202073,0.061277289867412564,-0.019134398406000827,0.05822277240970993,0.044241398569797516,-0.005043084829421997,-0.04018607674626312,0.06927013858769607,-0.004344519528141023,0.012868128092136383,-0.08525498011501847,0.03454513801989975,-0.024010073233037568,0.02195751011467056,-0.006334513400955963,0.06579357440817261,-0.009711559918811036,-0.013345796425511931,0.014702989589321902,0.025344240384365696,0.021528159041582107,0.062108358473124695,-0.05624000855096435,0.05573243638398361,0.006079895555899353,-0.002001432319259644,-0.002443507762801743,-0.010721616536909867,-0.04295436979775849,0.08180931740979766,-0.014715828856610106,-0.03683209432014542,-0.012104101579055901,0.013437134275827486,0.06964065576705855,0.06482510509484864,-0.03570993432865906,-0.05314338450149346,-0.11395284172808075,0.01426200422902832,0.012089334595506287,-0.058501489031186675,0.060430661880981444,0.0500264671381279,0.056157483018959044,-0.05001220665976715,0.07527209592948914,0.031277665487422945,-0.02043782967053299,-0.08342602471109009,-0.0008383195362091063,0.045666852330976865,-0.05341016683117676,-0.0003998352299102786,-0.03577085955021919,-0.038460902215493774,-0.01896648460201416,0.012595410857717131,-0.0060184891112971504,0.019921306564183502,-0.060824947492757256,-0.08852370824755859,0.003392263133862915,0.0036400299628715506,0.03255903972799225,-0.008351102953604507,0.01567778415994263,-0.00023129789984893678,-0.023584983993255156,0.06815277690185165,0.032341226983652875,0.0026074800379161833,-0.0395687710902481,-0.003838149411266327,0.04100280903240967,-0.019130064566046143,-0.07410366493117905,-0.07626375565908813,-0.014898051247527312,-0.02028174410337219,-0.0413983021689148,0.05420100971967316,0.02752598950049637,-0.024227222049773407,0.01466367372080475,0.013159825923877717,0.03946128732824249,0.02427177671503067,0.03591388100347939,-0.003222521540391235,0.0183274046263958,-0.03000545738402557,-0.04066711644104462,0.017155749921449585,-0.06134375247813416,-0.036362408407546995,-0.019471377535612868,0.034648935124684144,0.01776573165824356,-0.005382945029614257,-0.034531315796222685,-0.004955845186902466,-0.023998231859699858,0.03130629873801392,-0.012495260702575683,-0.031263154234012984,-0.063910194205719,0.01745994660978073,0.038960702542871095,0.04021203330704117,0.023016385340854643,-0.0403753269719162,-0.018214478771432493,0.009230925650691108,0.031802766191501616,-0.0060094809595568855,-0.05665428473038101,-0.0026934481642271802,-0.01278887994417572,0.013757778161637,-0.06991252187433472,0.025432326767399597,-0.05928275511783676,-0.0071204498857164004,0.009102611771803285,-0.048021745720825196,-0.04234071017774048,0.0378105065918541,-0.0030949641070522308,-0.0802945368397522,-0.029345935146197513,-0.055173430818717964,0.035613126717409516,-0.07929294203311157,0.011167600883222962,-0.010140670248493196,0.018876611506684494,0.038331590555036925,-0.021097202962330627,-0.02206313974373703,-0.0409461827742096,0.07130217153391571,0.06408282878469848,0.005774317041436768,-0.07263691064697265]"), SubjUID: SubjectFixtures.Get("john-doe").SubjUID, FaceSrc: SrcAuto, SampleRadius: 0.8, Samples: 5, Collisions: 1, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "unknown": Face{ ID: "IW2P73ISBCUFPIAWSIOZKRDCHHFHC35S", EmbeddingJSON: []byte("[-0.01391313475,-0.031814132,0.017377053075,-0.01851261325,0.021255451499999998,-0.051055306,0.0366150855,0.007998470175,0.0695672645,-0.1067636275,0.0307072165,0.02941578425,0.054768010500000006,0.041151049,-0.06493903375,0.0015896528499999996,-0.05437162425,0.011924136,-0.025054364,0.0009921848250000003,0.012807875,-0.01319641825,-0.00488935855,-0.07366566999999999,-0.0611034065,-0.06666547924999999,-0.04888238425,-0.035091203,-0.01854779615,-0.024557007999999998,0.0030882324,-0.055875238499999993,-0.0246700375,-0.02172630285,-0.025565405,0.058197003,0.0547107775,0.047857131,-0.04580487,-0.00021249714999999926,0.009770386499999999,0.044646309999999995,0.0018705221250000003,0.0371642205,0.018666550325,-0.0032051121500000002,0.0057689690000000005,0.06864431525,-0.04906746575,-0.07431345875,-0.0647896445,0.0120775261,-0.02890944,0.01879340475,0.024201165499999996,0.04355076025,-0.014099167999999999,0.026033113750000003,0.025052837749999998,-0.068487575,0.022659832499999998,-0.0027816580000000002,0.03500908899999999,0.012073708,0.006179701499999999,0.034802054,-0.01799351825,0.0457090165,0.0036213202500000002,-0.008580024424999999,-0.072938294,-0.016224131250000003,0.06459961750000001,-0.04963675325,0.08387918625,-0.13179572750000002,-0.011209804,0.011490459325,-0.04273579375,-0.0603162555,-0.03941750125,0.061718414,0.029566903,0.011713920749999999,-0.07820421,0.042141458,0.04053815075,-0.0431640475,-0.009912542250000001,0.0083520422,0.04968228825,0.061740414,-0.003251780325,-0.0009849047250000001,-0.07888640699999999,0.00013775579999999977,0.0545293975,0.0314430285,-0.025010752249999997,-0.0754261725,0.00026732155,-0.04167998875,-0.038423044,-0.012128476325,-0.042172063999999995,-0.03992470075,0.055492729500000004,0.005174035799999999,-0.0491557875,0.047224008,0.027870127375,0.11123915125,-0.0017566490000000008,0.06637293625,0.08444959,-0.038633152000000004,0.040549324,0.0181765085,-0.0103707255,-0.052444608749999996,-0.0721162075,0.0017395296250000006,0.03576854825,-0.0010544938500000002,-0.03536455575,0.026296009000000002,-0.011038092,0.009561795625000001,0.0061376165,0.016413343999999996,-0.0007041408250000004,0.008430746000000001,0.007772767000000001,0.035255850500000005,0.03609753,-0.004700959499999999,-0.0244996355,0.029143511,0.0019076424499999993,-0.02425797625,-0.02824462725,0.03748850525,0.004536174249999999,0.094921252,0.0402888305,-0.035919796500000004,0.0325914395,0.028936399249999998,0.0100435923175,0.051378176750000004,0.0466342265,-0.104555035,-0.058734387250000006,-0.053190730000000006,-0.004201957500000001,-0.0030598753299999996,-0.009583216875000002,-0.05078611825,-0.037133980925000004,0.0406709395,0.01118452775,-0.028617762,-0.006732865225,-0.03122189575,-0.054440001749999994,0.055957135,-0.054629830500000004,0.00548484575,0.0018623927500000005,-0.0054835023,0.04359883825,-0.04169836625,0.025491153,0.035283773500000004,0.020951236874999998,0.017083047,0.011288541499999999,0.029325848999999998,0.031001949125000004,0.04632318125,0.058114136999999996,-0.018353527600000002,0.0010329377499999999,-0.05167622725,0.0015087445249999999,0.0665028595,-0.017552406,0.0030785925075000006,0.067237884,-0.045436311,0.022067097,-0.068492519,-0.09581154575,0.02946200275,0.019267693750000002,-0.013623341,-0.0023418241499999996,0.057798097500000006,-0.02830513875,0.00967313775,-0.0156008155,-0.038696254,-0.046455728749999994,-0.020938623415,0.00489014375,0.0191956194,0.01110382618,0.020775547499999998,0.116135215,-0.040037983750000006,0.039333228250000005,0.011678268775,0.0650113585,0.0023590035,-0.05381264350000001,-0.008376887255000002,-0.05688126,0.01151456675,0.00003846570000000035,-0.01287236325,-0.06661450099999999,-0.03827642075,-0.045446761,-0.03154112575,0.028140978,0.070225409,-0.020004859,0.0193362475,-0.0034820117499999997,-0.074293175,-0.04876132,0.0074359382499999994,0.0066796961250000005,-0.011634815875,0.009048144557499999,0.0344562235,-0.01762691475,0.019571052749999998,0.026697968750000002,0.015484052000000002,0.03876590725,0.0037216567,0.04729691375,0.008930467375,-0.07800198875,-0.043134631,0.0424968855,-0.0057933688750000005,-0.075971065,-0.005398360425,0.01736323075,-0.03068225125,-0.0700152155,0.012127145199999998,0.052686005499999994,0.00609444565,-0.05195201175,-0.01496918725,0.032330921,-0.0251999175,-0.0317094965,0.0063436068250000005,-0.046775514000000004,0.024125194250000002,-0.025942028000000002,0.0683850275,0.048410787250000004,-0.020441745875,0.0014374775000000001,-0.007761475925,-0.003657494249999999,-0.01002698675,-0.0033783719824999996,-0.01613361275,0.054106417000000004,-0.0499455445,0.07898722825,-0.014621054499999998,0.08328554125,-0.02660218675,0.0029891759249999995,-0.010516797999999999,0.03557642825,-0.060217531,0.0171425431,0.03266155825,-0.0598199765,0.021716342,0.0851276085,0.06803951925,0.02062912125,-0.008283969975,-0.032307963655,0.0506742335,0.020532822,0.0360789155,-0.0006283978250000003,-0.02785933975,-0.0030728417500000002,-0.034540906499999996,-0.0300205485,0.1115321695,0.053453546000000005,0.0703359815,0.010377180074999999,0.036756731075,-0.00297751195,-0.077184735,0.0264304635,0.0481822745,0.073460445,0.06669125100000001,0.09291405250000001,0.05010346175,0.029880568250000003,-0.034649416,0.029474834999999998,0.031317542500000004,-0.02699742575,0.0557845065,-0.05035647375,-0.0022147215,0.0213037777,0.07004532675,0.0264894885,-0.04297427725,0.07081584375,-0.00481877925,0.0048342215,-0.02130823725,-0.025961382749999998,-0.06262777725,0.034384046749999994,-0.0190645906,-0.031134641674999998,-0.068910896,0.06261982975,-0.0260708335,0.09122910349999999,-0.03100116965,0.049027657,-0.01474484825,-0.03469707425,-0.006989758326499999,-0.056124094,0.009483469874999999,-0.04452728725,-0.011856436750000001,-0.02315196925,-0.0312197325,0.04668023435,-0.013576097,0.12342725624999999,0.009619299000000001,-0.03253524225,0.00691780145,-0.007575374,0.017970803,0.039913282575,0.01719394935,-0.034085923000000004,0.0160938888,0.047048848750000004,0.05772991225,0.03188324875,0.005430960675,-0.015838408499999998,-0.020243144275,0.017690586,-0.038486903249999996,-0.0037113453749999994,-0.05992632025,-0.0066788766,-0.009260173449999999,-0.043526957500000005,0.035566587250000004,0.0520154155,-0.03742566475,-0.012924420124999999,0.05485878925,0.017260086875,-0.00945986855,0.06038467375,0.028211044,0.01180591125,0.076735146,0.010415625750000001,-0.026288575499999998,0.03359009575,-0.029869059499999996,0.018123453499999997,-0.039763396500000006,0.013718122,0.015185622250000001,-0.021508391,0.0933689765,0.0861815165,0.01772232125,-0.03339793175,-0.018280382249999998,0.024922235325,-0.00670621405,-0.004941027,-0.0030330302750000006,0.049037655,0.0407625665,-0.098270484,-0.010615769,0.014149342125,0.0732888865,0.01031384975,0.0708132685,-0.0248589595,0.01914073765,0.023424223175,0.0017784540000000003,-0.0016458964999999989,0.034801676250000003,0.0007287893750000003,-0.00010908749999999942,-0.10601041950000001,0.035614491750000005,0.0023196674499999996,-0.07413317850000001,-0.03187354875,0.0022230885000000004,-0.022146297500000002,-0.0020944157250000002,-0.053558506000000006,0.005407627825000001,-0.00868874405,0.049080156750000006,-0.015095300350000002,0.050741894499999995,-0.0644765125,0.049679071875,0.011181570100000001,0.08374534125,0.047086234500000004,0.04629623975,0.07211018675,0.01747124065,0.03838733075,-0.02483115725,0.059315212,-0.007435562849999999,-0.033800771,-0.062262683750000006,0.018508591749999997,0.05456382,-0.032214809750000004,-0.0060910296,-0.0688426575,0.028439918925000002,-0.050798488,-0.032318176500000004,0.0070076956499999996,-0.0850821425,0.0116441195,-0.06209254825,0.0392326955,-0.038714852,0.042342809,-0.07345825249999999,-0.0783221335,-0.00245315065,0.0052674726500000005,0.06709293425,-0.033900455,0.059125045,-0.0089869296,0.03726652275,0.036819674749999996,-0.066015052,0.0090962235,-0.0532330595,-0.0423983279,0.054948274,-0.0021313933875,-0.036738087749999995,-0.061552870499999995,0.01083386435,-0.000004987750000000173,0.03250943875,-0.00265433175,0.023262875250000002,0.04094322,-0.0458693885,0.004981979125000001,-0.01146187345,-0.017557853249999998,-0.02698673775,-0.02743749775,0.015717598925,0.00637069715,0.0225431645,-0.024064882425,0.07339412125,0.031813663,0.04107066175,-0.0605346105,0.005952673775,-0.06258660275,-0.0320774,-0.049892332,0.024880522500000002,0.0639617125,-0.0702298615,0.017941317249999998,-0.005220711350000001,0.014933126924999998,0.0115449712]"), SubjUID: "", FaceSrc: SrcAuto, SampleRadius: 0, Samples: 1, Collisions: 0, MatchedAt: &editTime, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "joe-biden": Face{ ID: "VF7ANLDET2BKZNT4VQWJMMC6HBEFDOG6", EmbeddingJSON: []byte("[0.10730543085474682,-0.007740289179353713,0.04013410115400314,0.01458170011165962,-0.033333988977870946,0.06636234022813034,-0.00010941258007316575,0.0266348918046072,-0.05017391628723953,0.026034562221256254,-0.03388911566430759,-0.03461048494812202,0.040559725024994844,0.02683793627304573,-0.00972269717541027,-0.07836494561032105,-0.022470260049817198,0.011276674801708603,-0.05526434009558201,0.014401617237932205,-0.031258523568474236,-0.05416104192368187,-0.05567222379755878,0.017950877029356768,-0.016397424193561935,0.062346790423413276,-0.019043469394284057,0.04085343435437774,-0.05627231374819698,0.002355368169155769,0.07268979656775187,-0.0015096598716884627,-0.030188596848975374,-0.030941932784964564,-0.02826790015985233,-0.05420075791573048,-0.015742074680253033,0.019360258910790157,-0.008227027287290193,-0.08797317745792674,-0.07358703463505077,0.09688007249803735,0.015168583267354964,-0.034569315837825396,0.054231690688333986,0.018033145214487362,0.01579093209709463,-0.09204238994311237,0.08645247031890774,-0.10499936100221444,0.022421303168151857,0.005288450124515152,-0.017391072021601867,0.011218363053184624,-0.08478270589438915,0.0038618527485391615,-0.023381522484070015,-0.05428399272960853,-0.049397680150033,0.04006855272634697,-0.056704127236808774,-0.00958812557516262,-0.024006645464504622,-0.0073450501057456975,-0.03138197361666756,-0.013765138786817361,0.01162637563227787,0.0023935177775817563,0.08953138773108768,0.05337418268588829,-0.012870218945196915,0.03652425150877475,-0.027783526080406188,-0.019489638927241745,-0.01591402705199299,-0.005031992847164803,-0.014592982936285286,-0.03540697236418762,0.015595597412254449,0.004689344744109726,-0.009276015175478172,0.0058068592886232374,0.10480716412028504,0.0169216338187767,-0.0159497901004467,0.04574707649004688,-0.012214007484710122,-0.04849749380776977,0.054958586523843764,0.055898306713647844,-0.05052226642217827,0.008803732924324036,0.02326267119630642,0.047305830959801676,0.04497242295638694,0.020850376996620942,0.01314765746152954,-0.06768179592533874,0.05844347174572754,-0.03379152370001783,0.009412363744416903,0.04876727547273407,0.03299943491180715,0.01981742466488743,0.0547951049219265,0.020208802772381018,-0.08163521584288311,-0.038910958658009524,-0.004049565234655952,-0.02227413252290535,-0.0176418922441086,0.0568860088455925,-0.03240221023084612,0.0018760896289435579,-0.03234445138420723,0.007601825631139565,0.004916589611196899,-0.07292478312312889,0.021712048014592936,0.008807552270011749,0.0045489283733609,0.018861112444398878,-0.0341377092368577,-0.06305481604926585,0.039113288345403674,-0.01390809621003151,-0.04930861238819008,0.02377057523982868,0.019087416355893325,-0.013899296822125817,0.02251690464443226,0.08074113913260841,-0.018922226267959787,0.07189693789385795,0.060660045672045707,-0.023638294307546808,-0.006141792394255906,-0.06662582397409247,-0.013895529799502565,0.016608829923953898,-0.00390724028582611,0.05038048671591301,-0.015355035841564064,-0.0008532485082750321,-0.004694504582768126,-0.016610601585741958,0.008180847821889228,-0.04035771976174698,0.01847608156922703,0.08409907464663602,-0.029978496458568385,-0.06499117178372192,0.07448235046571827,0.10142187900247382,-0.023405319141915855,0.05237413796294822,0.04315940939233541,-0.02349721355909328,0.012594679585403442,-0.10457832859776592,0.001468614040066719,0.0165479676672657,-0.07708675453700256,-0.05102918249748802,0.045642631412478735,-0.004785828004440499,0.0203317336356945,-0.02006395174473057,0.04201285855375195,0.032883700123707296,0.0477916040669878,0.08070634492548084,-0.09245629058029556,0.05112703265588493,-0.006224603994954872,-0.0005257819460310555,0.005513055457300567,0.02521921247766018,0.012207323409280013,-0.009936333046208725,-0.007426916158089448,0.027260071572856714,0.006004036209329835,-0.039462719505699156,0.04428369084658737,0.005021041270120048,0.00955255667591259,-0.024385389176467896,0.06930311634011002,-0.0389855151682066,0.009325780048200605,0.0067487294106089776,-0.0538568250434906,-0.04132319716445885,0.005287871307727813,0.02836177144018917,0.016369665767238237,-0.02612976718916588,0.0781344821977253,0.0124423230052565,0.007052016124275589,0.07093038059380721,-0.040975969278632354,0.05987170546998787,0.0429845054696949,0.06377765311330413,-0.054260408781722336,0.017124075467253648,0.011034745989844896,-0.01129856537228031,-0.03058279355517101,-0.052326615682374664,0.06340472755555274,-0.007235566082305412,0.08209440086026383,-0.0037407900405261995,-0.02100836190159107,0.051361881913555715,0.035520336595121764,0.019260735587613487,0.04814414379586697,-0.010566343916274241,-0.03353529212573547,0.05283452853813282,-0.027749841873006824,-0.03820509264906912,-0.0015166780129867554,0.02487160170807457,0.03048850776525669,-0.030538799520168875,0.0921192664219265,0.03269134465648327,-0.031787506815418434,-0.01908650508301182,0.05982613160244779,-0.053232109332236294,-0.03650761934345913,0.0026813365359365463,0.032588356136758805,-0.032364926929593085,0.07780626359498405,0.044541174425177764,0.011626562325897788,0.03554684517681643,-0.030510870967539787,-0.04088990689640999,0.07105028789278889,0.03138784011465073,-0.06342823476303319,0.09164142434876824,-0.0112280279000453,-0.04595559070266152,0.08798781996626949,0.026803936697537615,-0.0014241986940294257,-0.020834715982498548,0.023556784775891685,0.008996215819517326,-0.0012677171940084454,-0.07692881668502807,0.024615258007191814,0.02948731386628723,0.06911119150276565,-0.041541930091072085,0.07317672894504547,-0.012252912262506771,-0.03429316172188286,0.03286905748134327,0.025736928383919527,0.003926683415351601,0.006255630871762562,-0.020806247741813468,0.0675457214042778,0.007579460672946357,0.012004441173839569,-0.028187582314963343,-0.0018772867526912688,-0.01844064376148571,-0.05389302147970715,-0.04154738243111,-0.05912346626385308,-0.003186127453911171,-0.015869915592464562,0.036601020266580665,-0.08332522355102062,-0.015594113206121387,0.010554298175920372,0.009863903175943527,-0.04408378851017952,-0.01321298950931368,-0.026788807387387467,-0.00905998101737915,-0.07901183432849217,0.022626760559060342,0.05966787504726859,-0.0373913765745697,-0.00620443077226124,-0.005321248754354935,-0.05629461318153381,-0.04339327553344822,0.03066110013017902,-0.0560899433873785,0.029585001932263853,-0.06142458606396866,0.018855098215825178,0.03336997769082436,-0.07772387048591708,0.02869667860757885,0.04751144987925148,0.07131169258731747,0.01554444873138424,-0.019102520424152183,-0.06713599618322277,0.021553602847260475,0.022784952935549926,-0.07224605423420524,-0.03428428022313595,0.025510370273970604,-0.042455744666400605,0.024999596293880464,0.0007267671517935561,-0.007103063657435513,0.051193967364198685,-0.03918299151588478,-0.05340270113635778,-0.0005553757678619388,-0.04361415384515381,-0.05659870360464592,-0.003001301568729019,-0.10493783691904449,0.007865782491956196,-0.010459198798326888,0.03839990013440418,-0.029396389004837837,0.04123072916591454,-0.003870788638888664,0.011576299454542732,0.021793958225202522,0.0013144587776207917,-0.024084851461598205,-0.007895128372669067,0.02794634672595444,0.013256276108802492,-0.06581846043538475,-0.03512838380870453,0.010219935781849479,0.041956290830379675,-0.02193645334812136,0.036522118692461206,-0.04014683200312634,-0.007509486720670319,0.025035869046040268,0.03341998480559387,-0.03562761249035026,0.04892323307058029,-0.030771232001644132,-0.016917612628533363,0.002604945885121918,-0.044643074882380486,0.01154372547133419,-0.021955625942386627,0.018907365975515553,0.03550167291446045,0.01069377167082758,0.00010183658435096768,-0.04899959038740444,0.04724968668608978,-0.01864932432341235,0.0591259089168789,0.07907125494612216,0.028897156624642945,0.01633692932619137,0.06420496597867965,0.018129071607111358,-0.06522170992608013,-0.03939954941189146,0.04130569647272587,0.04419998725251961,0.04542913027885341,0.018470383181769943,0.008568164058957863,-0.06659949697784996,-0.053012251715078354,-0.020253768667636778,-0.0428765378002491,0.07184141544699574,0.02058260375849676,-0.03779574153167915,0.0021254573788347247,0.00922705617390442,-0.06903300705643031,0.048223514541707424,-0.008124176700399017,0.06623217639861775,0.011399885879904556,0.13320644195552445,-0.015707634324862062,0.004298537653726769,0.007440328888434029,-0.03552852988830433,0.006549433453245544,-0.019685784628289793,0.001693401851796341,0.050209905835451124,0.023254144681681632,-0.04905436637160683,-0.01058279299507389,0.06261640349854469,-0.07554102380998802,-0.010803172210683784,0.04001997347501145,-0.013296409033855438,0.056829244201244355,0.029110596151947783,0.006392164909307861,-0.0035876165295053485,-0.019022594469099045,-0.06487911801050472,0.02178870949222603,0.05293369045270252,0.0014374271403566358,0.02058438161717472,-0.05258523574003887,-0.03312468141761551,0.051533518133239746,0.03929023312081566,-0.07294044148252202,0.01607557897360134,-0.0007034383966050719,0.014925192443655966,0.051449392859268764,-0.06079890988933106,-0.04363216685223599,0.028568039422766974,0.045766175851156804,0.07275596444172669,-0.02276483221781349,0.09294405910429002,0.06625853254336929,-0.04167032707059745,-0.04751508792911625,-0.014774199240300752,0.023224616626467326,-0.01281115503053608,0.03472993899021339,0.008343472536062031,-0.011408440443860645,0.004419146704378701,0.05045044130775452,-0.03518939370823498,-0.04170123182437134,0.022208642446600917,0.07141607704347333,-0.04112406919064011,0.03227901691925602,0.03527487398910847,-0.029543274091153718,0.005872693907862854,-0.008123872357421475,-0.058780187362098696,-0.00027467445847377796,0.024044984289353373,0.057634827237228584,-0.04450547877367153,-0.03946884506688686,-0.02006971111822632,0.006139106799438476,0.014848452844277668,-0.040448605585189826,-0.047422823475079534,0.00047739853115692137,-0.03920787799786568,-0.05102518756346798,0.029106281725284004,0.023013759328845976,-0.0181101632871727,0.003943383191735267,-0.11744085779379082,0.00652325401639185,-0.0016088291387550352,0.004582751362570763,0.06564233218507957,0.014525142593546867,-0.05397913284980278,-0.005146496768864823,0.008265835225847246,-0.09204165418391608,-0.023673615795413973,0.016221329961976054,0.0560354235721693,-0.03387280199538708,0.011243025140723228,0.02789629877560217,0.07942785398379296,0.019745293456116107,-0.03951280953572121,-0.0325216371505229,-0.04877831216997623,0.008021598871560669,0.06607214515587043,0.08340918698473548,-0.06638043362871171,0.0003533690162649157,-0.05787711264029312,0.017585791805968413,-0.004768172475530777,-0.031721018591366806,0.059853391075907716,0.08903246940908241,0.00910143805785122,-0.02198764055408287,0.023417301139897727]"), SubjUID: SubjectFixtures.Get("joe-biden").SubjUID, FaceSrc: SrcManual, SampleRadius: 2, Samples: 33, Collisions: 0, CollisionRadius: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "jane-doe": Face{ ID: "VF7ANLDET2BKZNT4VQWJMMC6HBEFDOG7", EmbeddingJSON: []byte("[0.0007977288249999999,0.00627412635,0.010081367249999999,0.060607290999999994,0.0198231296325,0.00677942925,0.0127981935,0.0173897118,-0.0031311625250000003,-0.01667410885,-0.063420228,0.018361592,-0.08858173750000001,0.03073611525,-0.031917364749999996,-0.038458696,-0.0547301015,-0.008465875175,0.01761571915,-0.004627128875,-0.014689141,0.0638510155,-0.06016673375,0.0427068645,-0.0018743572750000003,-0.01726785,0.01797843425,0.013435698749999999,-0.02318214925,0.022266988,0.010709568150000001,-0.006173700925,0.05487494425,-0.00735372625,-0.00730452625,-0.009618603875,0.02644855175,0.03581387875,0.0603323515,0.0274974055,-0.011483472,0.018239579750000002,0.0330916205,0.02055146915,0.0242073965,-0.0006206512774999994,-0.01502779865,-0.00663770983,0.020805977000000003,0.025900334499999997,0.03035390375,0.0032148387500000003,-0.00391496355,0.054927406750000005,0.038901408,0.045302014249999994,0.003995124,0.03543321425,0.06059028175,-0.1112412095,-0.0058859643825,0.006096619500000001,0.034855345,-0.0979946125,-0.01321143025,0.11343869000000001,0.006484222825,0.025919567249999997,0.06456440150000001,-0.004858886425,-0.006586231,-0.012453104075,-0.0045703442499999995,0.06079882,-0.0248508515,0.0585631235,0.0204748375,-0.050474988250000005,-0.0601280055,0.0206371795,0.05054124575,0.07786492925,0.06104633175,0.0122962905,-0.020578794,0.04871231525,-0.0046306429,-0.11645592,-0.0016124173750000003,-0.0174920002425,0.0055334826,0.04527567075,0.07851289325,-0.0053165103000000005,-0.02369275525,0.017747101675,-0.0519253465,-0.00209848275,-0.012302984500000001,-0.013717400199999999,0.01359236975,0.02108301525,0.041778528499999995,-0.10003224,0.005552072275,0.024320880750000003,0.011672114249999999,-0.056534426750000005,-0.06916763575,-0.06349918,-0.0056744145,0.0346825085,-0.05831162125,-0.001728813,0.026253652175,-0.00694282505,0.07631711775,0.0162711135,-0.025647805849999997,-0.05708761650000001,-0.1363480425,0.0731495385,0.074582931,0.01708094025,-0.0401903185,-0.014694330250000002,-0.0015122242499999994,-0.0527830695,0.03213205125,0.01814980125,-0.0022534211875,0.006620919325,0.0096743934,-0.00950359475,-0.03451209525,-0.077583193,-0.0327730455,-0.00922135715,0.047522121,0.010230271575,0.0098390256,0.05241573875,-0.0001339010500000001,0.0493660095,0.04127633175,0.0588596835,-0.008334644124999999,-0.013199373475000001,0.00565431415,0.02194862975,0.053116437,-0.06246536,-0.06762575875,0.0083671415,-0.062960726,0.028651681,-0.0047957945,0.02279490325,-0.01949435125,-0.0145249815,0.0179922025,-0.0050103798,-0.02183141475,0.014762827225,-0.0098820205,0.050833761500000005,-0.06879305050000001,-0.019839172457500002,0.03499764575,0.0508008915,-0.0215009885,0.006626853750000001,-0.038975954,0.029960057999999998,0.0196604121,0.010876822750000001,0.02900263525,-0.00548767725,0.013630449250000001,0.0005998975,0.019220962075,-0.0465303345,0.019054888,-0.02356633375,-0.038011357999999995,-0.025119104500000003,0.03871977525,0.024482080750000003,0.08431583125,0.02732495225,0.0949345775,0.0306948015,-0.01885955675,0.0670141655,-0.0106550329825,0.0004984321480000002,0.03305477934,0.03265502,-0.03410266475,0.06414483,-0.042341717,0.0491270175,0.03191559375,0.02826792625,0.1142247775,0.03742189875,0.03385123675,0.043446917,0.0065846527,0.019319251675,0.050761064999999994,-0.03899118075,0.02432739675,0.056898795,-0.07070233249999999,-0.0063754505,-0.0538108965,-0.0519101365,-0.08475072950000001,0.0080495835,-0.08008777975,-0.0499128635,0.0237340165,0.0359055565,-0.043358586500000004,0.031290711,0.0449176795,-0.003326489350000001,0.0373564235,0.017098932,0.058522701499999996,-0.013411767875000001,-0.03544247725,-0.00710222475,-0.026729970750000002,-0.0142197245,-0.002157010249999999,0.05803525749999999,-0.051960914,0.02590911975,0.0300332645,0.0244066115,0.026088825249999996,0.07373419,-0.060161999499999994,-0.0263518045,0.0149505905,0.005806035210000001,-0.07896729899999999,0.006424700950000001,-0.0104141191,0.01328528435,-0.05459953475,0.04573714225,0.047946037999999996,-0.030557348499999998,-0.033911058,0.028284643249999998,0.031623838,-0.017917532,0.038332007,0.04307251675,0.062034384750000005,-0.013643519,-0.06629597425,0.0846901,0.032617285999999995,0.016660794,-0.0103782503,-0.0035999764999999997,-0.04074201625,-0.045392795,-0.0567024655,0.0534449995,0.032140247999999996,-0.002615942875,0.003970428749999999,0.0006793384999999996,0.0479470605,-0.016679134425,0.002493526,-0.007884887625,-0.07609053,-0.06749486625000001,-0.015545290075,-0.02866428275,-0.04221165,0.0099219202,0.03324765825,0.06594442824999999,-0.05207292325,0.0256602945,-0.008784434175000001,-0.020650667,-0.01128855048,-0.026282654000000003,-0.06931673275,-0.03460548625,-0.0039021685000000003,-0.003175222075,-0.025202154450000003,0.03085420725,0.062878601,0.036194557625,0.0315831115,-0.013516679,-0.016713230000000003,0.03202856975,-0.013251297775,0.020228611,0.0753752425,0.08055008,0.08036205,0.05738650225,-0.029444540749999998,0.0182663646,-0.04029768,0.05418008275,-0.00337875545,0.0869958875,0.04981642525,0.021226451,0.067376955,0.05702456425000001,0.0256154065,0.0165551525,0.0573363425,-0.1131940465,-0.048254465999999996,-0.006381563175,-0.02805285125,-0.0843180615,-0.02208099575,0.043981212500000005,-0.049404160749999995,-0.02832630175,-0.019787925749999997,-0.044114692,0.09415466650000001,-0.0715971185,0.053612709999999994,0.0617767915,0.011761299175,-0.0743617975,-0.07687093,-0.04184027125,-0.03814104625,0.0190135215,-0.02036469565,0.0043338230499999995,-0.046716389250000004,0.0342062435,0.0023538994499999995,-0.04717579125,-0.0273496055,0.04244376625,0.03831893575,0.01170549475,-0.03156427225,0.011907790275,-0.060581235,0.041743171499999995,0.099892805,0.08941036024999999,0.07931023225,-0.0045060146,-0.02298178175,0.0170326654,0.002005552125,0.03624607975,-0.00254639081,-0.021702498499999997,0.00025758344999999975,-0.05735207875,-0.058512898,0.054487390999999996,-0.069780037,-0.0482861765,0.0426412765,-0.0005190220499999999,0.026654973999999998,-0.018059142435,0.015806152,0.0052889667500000005,-0.0156201485,0.0704166475,0.060801867999999995,-0.0465132285,-0.020886614749999997,-0.011178703875000001,-0.0090127261,-0.009662520155,0.03789897025,-0.051430011,0.01944026075,0.07463842749999999,0.051795128075,0.011506837975000002,-0.008200053,0.011794975,0.03101000675,-0.049201035000000004,-0.0443442445,-0.0134417219,-0.006325725025,-0.01755221025,-0.0607596845,-0.05817676075,0.015325420199999999,0.026280469425,-0.07285754675,-0.06974749,0.01869944075,-0.023075805624999998,0.0091478072825,0.031091439499999998,-0.006865514,-0.04208474925,-0.0054626954749999995,0.0188026845,-0.049544713000000004,0.032261805,0.02338521525,-0.013330432,-0.0224570155,-0.07082244425,-0.014643495500000001,0.1226712625,0.0132564726,-0.031361429749999996,0.0379521724,-0.0066203463,-0.06123780825,-0.019100098,-0.027406878750000002,-0.0161381114,0.02359161625,0.01835811065,0.0794485855,-0.0399414135,-0.051978358749999995,-0.079630794,-0.054609961750000005,0.0144952945,-0.0032930052749999997,0.1006953125,0.0168597975,0.003768769525,-0.024148695999999997,-0.038411440875,0.0352168475,0.0783426045,-0.06891328699999999,-0.044475929750000004,-0.0476271525,-0.0257017798,0.007319193000000001,-0.045860846,0.03613755025,0.032934875749999995,-0.015392466625,-0.0171107225,-0.021246307,-0.0049659322075,-0.1082791675,-0.04918869425,-0.061089002,0.03516362325,0.033606162499999995,-0.01977699145,-0.029709126250000002,0.09406408499999999,0.023276244,-0.061732811,-0.008581465,-0.0577642725,-0.02751739825,0.0150603045,-0.013947836,0.0069377069999999996,-0.030457946,0.0455026755,0.015736250325,0.04198308775,0.050190193499999994,-0.009795321,-0.0626410775,-0.0029042444000000013,-0.010100665375,0.033087972,0.019320060942499998,-0.03953386525,0.022216985874999998,-0.013800474,-0.010697693999999999,-0.007538092125,0.07874210100000001,-0.013867060100000002,-0.015251711,0.03930575225,0.047296916,0.04652198125,-0.0124463654,0.0721478725,-0.010877033000000001,0.0175319255,0.038609693,0.0295120445,0.011322374,0.07543583300000001,0.00606530779,-0.06794421925]"), SubjUID: SubjectFixtures.Get("jane-doe").SubjUID, FaceSrc: SrcManual, SampleRadius: 0.2849559839760571, Samples: 3, Collisions: 0, CollisionRadius: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "fa-gr": Face{ ID: "TOSCDXCS4VI3PGIUTCNIQCNI6HSFXQVZ", EmbeddingJSON: []byte("[-0.053561389904586795,0.02493500179508972,0.05595611112191772,0.0055583031357406614,0.06096615248301697,0.03496644994218445,-0.01198695953822937,-0.02454460388852234,0.06803707268757629,0.026374346495635984,0.0829672158716156,0.016856238718595883,0.026665416756958008,-0.0040052483594970704,0.020293359176193237,0.04141028915954589,-0.0203971049396698,-0.022560134065307616,-0.03766844269610596,0.010925087254508973,-0.05584892202276611,-0.01708412063880005,0.07078410664926148,-0.006791854692691954,-0.09048726862814331,0.06529471053547668,0.00805870625440979,0.003185225187793579,-0.018936199966329958,-0.012567245673349,-0.05535705010704651,0.03018335210581665,-0.04415012300550842,-0.05080241808776856,-0.037411959780944824,0.017662395667355345,0.09760594306341552,-0.028251039018463132,0.01704797846333618,-0.059372201955718996,0.05574424936593628,-0.010868599007102965,-0.012860168669677733,0.01699000405715027,0.06789376899803162,-0.007262103997096252,0.02162036994911194,0.029675374175361636,-0.018911653790352638,-0.040019186535003665,-0.05813169548834228,0.001130981756311036,-0.03868822248225403,-0.013124584308215332,-0.04959773636276245,0.015140624265402221,-0.02141350306637573,-0.03751785701907349,-0.006248120308032227,0.05437072424835205,0.018381264600920565,-0.06975018308328552,-0.03373974997651672,0.034049636619096685,-0.04413912348025513,-0.020500543401235964,-0.06727858024015808,0.0056846422075592035,-0.027692957355023196,0.03017583047795105,0.0379142424294281,-0.020554617585459595,0.08608181673811341,-0.00558661152100952,-0.01761539180555359,-0.030357409232269282,-0.038801233812469485,-0.002326377160518799,-0.04056732406237793,-0.03209971834346008,0.024125684115341186,0.0315708265684845,-0.05462144547168274,0.0026592329726211547,-0.0002449828401040651,-0.018294493854022216,-0.004316533692294311,0.031179499626611328,0.018720620290939332,-0.010533231864138794,-0.02601918470727783,0.03628710090163574,0.00506572206867981,0.03785012353689575,-0.02089666075800049,0.0005888406594442138,-0.02709355396816101,0.05639648983508301,0.006216579241943359,-0.05114516002183533,-0.04535121382156372,0.02563305507798462,-0.07923478377371215,0.032685130028892215,-0.001191900266772461,-0.04475778329414673,-0.023464674753723144,-0.002032372990753174,-0.01025872433950653,-0.024260434875390625,0.02864984106276855,0.007080414502122192,-0.06647833907400513,0.0783933927390442,0.08410754442626953,0.048460447177383424,-0.005683048104943848,-0.0033352546661720274,0.02472490765201111,-0.06543308330223084,0.08478776423457336,-0.025810452447610474,0.043794386990188595,-0.05349430982803345,0.06986419394355775,-0.06776561983079529,-0.027279223366226193,0.06643936192025757,-0.02699730024284821,-0.02261310328250824,-0.030541795043481444,-0.036404816941958615,0.002319148392166138,0.030034134980651855,-0.05057250613243866,0.015797195287312316,-0.05546740251412964,-0.03792064480703736,-0.046270072130859374,0.03600284879156433,-0.016286383008148195,-0.01447935282893982,-0.023145600843895997,0.05445904519541932,-0.019425428872716675,-0.027849521253845218,0.02624303381966553,0.03904380140099487,0.014552910185842895,-0.015262209582714847,-0.01546606357798767,0.06973534984918213,0.03443690571838379,-0.03316039928060913,0.025289981915246583,0.027551592510702515,-0.05067044379051208,-0.026268390881219482,0.01957086168347473,-0.018028586132089235,0.03361352139247131,0.02203808638873291,0.01012487246018982,-0.02816909800907898,-0.009651444010451508,-0.09467841339996338,0.02476457462034607,0.004779872280953979,0.0501946385553894,0.02433562254768372,0.018832664526740112,-0.012715093342271423,-0.029919957296679688,0.00032212689794006383,0.01700923572964264,0.009046746358553008,0.005211006430688477,0.0016982382203079224,0.049998209365203855,0.03436742353085327,-0.0121563069042511,0.05672995838252258,-0.04706990067637634,-0.056664633050765995,-0.012870437315783691,-0.07744849265951537,-0.046735237881042474,0.027536489646829223,-0.0063465054498382575,-0.03997399767149353,-0.005338936482995606,-0.00362328916847229,0.001921811812083435,-0.054075812154693606,0.05371017350401306,-0.06654334314242553,0.027277056678497315,-0.07361431532672119,0.029437021327194217,-0.015122589976702879,0.031627708358566285,-0.0755312407050171,0.010630397944732665,0.008918350276101683,-0.05778323354902649,0.0994148142859497,0.04068332303825378,-0.05268494103314209,0.03015451629309845,-0.018775764622164917,-0.009062567619699096,0.007059089237823487,-0.012346531363076781,-0.04320939792871094,0.07813872230740357,-0.03035949564965286,-0.01947474479802704,0.037923704186218266,0.007442268481819458,-0.03807596509654236,-0.008003724362815856,0.025805637528684693,0.03347750500194153,-0.07962477516238403,0.04868631318370056,0.02977127815507507,0.0029135298348171995,0.09915490313339234,0.019012361539624024,0.051748930902374264,-0.06191068098287964,-0.03972761279501037,0.0016844349614929203,0.0792777453282013,-0.031942168768554685,0.046137294803588864,-0.008718205879244996,-0.029874303470267486,-0.027774339395344544,0.05929509779299927,-0.01801204332841797,0.059447149948730474,0.04841970852426147,-0.0011173667728857427,0.022864025326361084,-0.026576215090582278,-0.05152430963276977,-0.022743134079202268,0.02738566810560608,0.025095160937530517,0.030021709013610842,-0.004549830057951355,-0.00030068623583221453,0.0009505420682525637,0.0293544979478833,-0.0007231390724517822,-0.044882692693908696,0.028293255085162353,-0.026880331244885255,-0.0020027976073425297,-0.0035708168297326663,-0.029375177293811037,-0.03760578239718628,0.009499767254864502,-0.006659269350109253,-0.008412711995428467,0.04506797155446625,-0.061588304754226685,-0.009378277797467041,-0.019579266450035097,-0.009406960064926148,-0.006551914738876342,0.05495061562628174,0.02347226618362427,0.01817871002554474,-0.016346725162420958,-0.0217945497718689,0.06450126613516236,0.05860402971525574,-0.0017858836164611814,-0.050239541191390985,0.10140318902853393,0.04010114428864746,0.0008114142740280172,-0.020079750827853394,0.0290547948102417,0.0523606569267334,0.0697007091730957,0.025686350122457888,-0.069663450563797,0.01652778975481415,0.04418237776111389,-0.030442624633346557,0.07070662380650329,0.00607760764486084,0.018585937644244384,0.04747481670280457,0.003442409377093506,-0.027003151967041016,-0.014442290127001954,-0.03355948236605835,0.04752330382379151,-0.06009620755910644,0.012064740791355286,-0.02728147155336609,-0.0021602167619903566,-0.019625289300570677,-0.027403285474594117,-0.03132451562153625,-0.00696172938717041,0.07344502092098999,-0.05291414485440063,-0.027143530911676025,-0.02862010956461487,0.013457262882380066,0.020273073586030577,0.0869318828140564,0.03178946219732208,0.01546345787972107,-0.025812222701647947,-0.012377268964108276,0.025233301823695375,-0.027445998504124852,0.04623188894171143,0.03194692068911133,-0.018809481018737792,0.05440299125515747,0.08841021014102173,0.024042683822097777,-0.0437970808447113,0.0622284837868042,-0.07230914156738281,0.061785600439392095,-0.005898011142715301,0.017018915580725096,-0.0074343364131958,0.0472978119741211,0.03322449719477844,0.05553645137957764,-0.045228417684552005,0.014598348405079651,-0.05135967175909424,0.02576592887980652,0.05089475070780945,0.03544028016654968,-0.03770926128921509,-0.017584528153511046,-0.0048514873775695804,-0.031726442226049804,0.03177034682945251,0.0442558303147583,-0.028826217311273192,-0.07331044327641296,0.0389429476973114,0.002298495944973755,0.05235454000157165,-0.00712197604630127,-0.023682568859283448,0.023732466243682863,0.013723664675314027,0.058904355138183595,-0.005807367322749329,0.015096379596409608,-0.006360169882392883,-0.030699472455233766,-0.0525733884350586,-0.022169618942180988,0.003913205996453857,0.03606074732737366,-0.007866270807852172,0.048841612311386104,0.0034765838286437986,0.004248465200854493,-0.03280500829776306,0.06378764452790833,0.055532332409862675,0.08680252519212342,-0.017844255846798704,0.029810377057144163,-0.02942251447070618,-0.044855546762594845,-0.005517916898706055,0.050234964126266476,0.011523523362924195,0.005936588419967651,-0.03421115212210693,-0.057217579814910886,0.031242944445419314,0.005507734122839355,-0.07523726362719727,0.07727178597763062,-0.03340703129373169,-0.0037740379818069457,-0.05799064666407776,0.002951611914428711,-0.0381551103936615,0.06767114967684937,-0.05226751990200806,-0.08678377352308655,0.018258538073345338,-0.05100995869369507,-0.014669730179177368,0.0019073754601989742,0.019928211831918334,-0.009651354162780762,0.00148156542230835,0.0300498909315033,0.013933203938430786,0.049118417478469845,0.07034309039993286,0.08631518890869141,0.045312744073425296,-0.0114556711665802,0.002262044725527954,0.03909658930291748,0.058989745317047114,-0.09017043097357177,0.029915415012585447,-0.021694081220796205,0.007112899486217041,0.034908875648205565,-0.07557318224520873,0.00747602307928894,-0.07689437854341126,-0.0816104629965149,0.06584847972103881,-0.027223482248062134,-0.0734825446631775,-0.026031234442622377,-0.021221113447901917,0.009427636536148072,0.0733798275839386,0.038499398346939086,0.07065423379763794,-0.03234823392584229,-0.03810496551548004,-0.022686502779409486,-0.0280469574908548,-0.025900615115014645,0.042155878818878174,-0.00046531529118805023,0.0967171226513672,-0.04239019891482544,-0.021407168994793703,-0.0901884771748352,-0.009318602439419555,-0.062206653710449214,-0.05432696328559875,0.07080146096733093,0.010451482704911804,-0.030338169516888426,-0.05439818012039185,-0.012598419564173888,0.04722508374314881,0.005100992507037353,0.07548265095941162,-0.02993898883608093,-0.00834879275138092,-0.04563876436360169,-0.04020596480168152,0.0288604560251709,-0.07016607971246339,-0.021332305549841307,-0.012735979240548707,-0.0325507344491864,-0.027569437057450866,-0.00618333070614624,0.014708548748822022,-0.028020249052243044,-0.0055215683416900635,-0.027922072329937132,-0.04069747037893982,-0.015941954358544924,-0.057657907068542485,0.057477929705368046,0.09361960902160645,0.023154440080284118,0.08209954707691955,-0.04653738135888672,-0.022657983432824706,0.017859119538793943,0.03184386651611328,-0.06479600977639771,-0.037647264635800176,-0.03802839938505555,0.007582054424845885,-0.000219012254373169,-0.019724465482708738,0.008770073973083495,-0.05662031348901367,-0.021091617894259642,0.024251208349423216,-0.08418829827484131,-0.058303197052200315,0.007839132345101807,-0.01063874680109253,-0.10956825240359497,-0.03290552308336639,-0.0166004150932312,-0.007761278100527954,-0.0341763706727066,0.030335803438739012,-0.04574581508354187,-0.040141617028427126,0.029325096495925906,-0.027303054453048703,-0.018120842727615355,-0.081876543736084,0.049446647137298586,-0.015033118148144533,0.0259648896006012,0.03862191597553406]"), SubjUID: "", FaceSrc: "", SampleRadius: 0.3335191224530258, Samples: 4, Collisions: 0, CollisionRadius: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "actress-1": Face{ ID: "GMH5NISEEULNJL6RATITOA3TMZXMTMCI", EmbeddingJSON: []byte("[-0.042797452781249995,0.00422465874375,-0.048662441625,0.0031430446,0.06633659487500002,-0.018196528703125,0.040835139765625,0.052952038265625,0.006016549665625001,0.009785659178125,-0.029831666965625,0.054324560015624995,0.01054248685625,0.017850270410937497,0.026022013796875,0.03613610925,0.03469964425,0.07347525625,-0.026205852546875,0.0166165387265625,-0.00219102274375,-0.0521860075625,0.028795398437499998,-0.020569271453125,0.00665820161140625,-0.05419626184375,0.006151694960937499,0.0280780779140625,-0.002380057990625,-0.0047011529390625,-0.0250162446671875,-0.08458884684375001,-0.0488252095625,-0.0263757030625,-0.0141043764,-0.055177046234375,-0.024440984495312502,-0.06736828789062499,-0.011746090509375,-0.0658738613125,-0.012061459415625001,0.006663972303124998,-0.02980980240625,-0.024637781609375003,0.081152222890625,0.08694402428124999,-0.009879704509375,-0.06108930775,0.030863420734375,-0.024178249960937502,-0.09244857825,-0.033086686328125,0.039693733424999995,0.0222100371025,-0.07447425484375,-0.068857844375,-0.023395244290625,-0.004518527246875,-0.0123647139375,-0.019760296765625,-0.04322777059375,-0.0339581230625,0.00922167535,0.13172738974999998,-0.057130676015625,-0.04021859003125,-0.04409194796875,-0.06360571378125,0.0038800593812499994,0.011037305934375,-0.12183968115625,-0.07553384335937499,0.08556041196875,-0.00675970565625,-0.008239945834375,-0.0002750189718749999,-0.0123454039234375,-0.074857799546875,0.039849796187499995,0.004566287940625,0.011853646906250001,0.012255246218375,-0.01633359240890625,-0.02856772603125,-0.025007442953125,0.060898780296874996,-0.058974834484375,0.023121999062500002,-0.020350771803125,-0.030586074459375,-0.033634610171875,0.0538676319375,0.041377327125,-0.028109858159375,0.0072398953984375,0.073216935046875,-0.0314768581875,0.062401044,0.040599449268750004,-0.057796485843749995,-0.05566476365625,0.03588720815625,-0.035500273796875,0.0735189534375,-0.02440577285,-0.094595259875,-0.028696179756250002,-0.00399260396875,-0.009224862356249999,-0.005818649078125,-0.045656088593750005,-0.0070814703171875,-0.026597113656249997,-0.030390899437499997,0.039040696718750004,-0.06426890425,-0.06785859596875,0.010784127853124999,-0.054993149796875,-0.037887456421875,0.03338866509375,-0.0212479521875,0.04566912451874999,-0.043900132531250004,0.0746015890625,-0.0243242484375,0.033496269125,-0.00895349779375,-0.090135792046875,-0.060008334546875,-0.03285268494375,0.0074423431250000005,0.0056082175,0.007676819027812499,0.043098117078125,0.01961326721875,0.043081848421875,0.0017007411484375001,-0.058708293015624996,-0.011024991296875,-0.017065255225,0.0463664746875,-0.050305781265625,0.07986595525000001,0.031914426896875,-0.0451691994375,-0.014531763891874999,0.0238665033034375,0.0019062963437499999,0.037309521359375,-0.056698300125000003,0.05307699465625,0.025364797046875,0.041471147171875,0.013446926728125001,-0.032811845578125,-0.07355180671875,-0.07045656553125,-0.027063845834375003,0.02144017521875,0.03856208171875,0.054781846015625,0.065618965625,0.045270843109375,-0.07020550296875,0.0254819304059375,-0.050949131109375004,0.034050439953125,0.02819093215625,0.003919965578125,-0.022841327275312497,0.0024206921150000003,0.0412864711875,0.011987981381249999,-0.05907508284375,0.028428842559375,-0.04474331540625,0.011173079484375001,0.023104085078125003,0.02738280965625,-0.02268888928125,-0.014092400128749998,-0.005039106766562499,0.02355611371875,0.0366038645,-0.09409493103125,-0.0111312976078125,-0.055360834203125,0.0781101144375,-0.034545760890625,-0.026267615734375,0.0074333465375,-0.016226572784375,-0.0334946088328125,0.0087815724984375,-0.03358945,0.00830140880625,-0.116942932375,0.014852332671875,-0.048670014625,0.07110080234375,-0.010049274725,-0.009037579723437501,-0.026618966031796875,-0.0088876183875,0.07093048070312499,0.0003418017562499999,-0.016285292934375,0.023988535603125,0.02958441390625,0.028762250546875,0.10859091765625,-0.026533771203125,-0.08597097553125,0.0254817276328125,-0.0008839394531250004,-0.03657968334375,0.024961030874999998,-0.009623568225625,-0.018902566154374998,-0.02395361703125,0.08707610598437499,0.006472697634374999,0.012126961531250001,0.086273127234375,0.02112650480625,0.072864588171875,0.038641529375,-0.0339470703796875,-0.0070681386978125,-0.05114889515625,-0.064077736875,0.0801859346875,0.03619106715625,-0.044011980829687505,0.020673788834374998,0.05450474890625,0.0007419524218750008,0.005525969687500001,0.05928241809375,0.00873763790625,0.0075881849671875,-0.0030794112093750006,-0.000550304234375,-0.057828903015625,-0.015375027634375,-0.01341457351875,-0.047298705734375,0.0006185382125000001,0.05260293315625,-0.00247172916125,0.0024320877968749995,0.042094363078125,0.038377400699999994,0.047210891703125,0.026533354281249998,-0.0173795238765625,0.0750090398125,-0.02227682790625,-0.015970143140625004,0.0041755543746875,0.0389908288125,-0.026298664421875,-0.0033195475937500005,0.0507240515625,0.0121328996028125,-0.0159850067625,-0.009988589078124999,-0.004624901678125,-0.053816907359375,-0.027323620906250002,-0.07184708109375,0.0739319004375,-0.005675397015625,0.0574534906875,-0.0018322834937499997,0.012349312390625,0.04371528075,0.102938820046875,0.049753955453125,-0.0471465348125,0.014692125212499999,0.011317236803125,0.01167229329,-0.000906872929687501,0.043713847328125,0.050471491734375,0.09127307840625,0.0037926065499999983,0.02476943571875,0.009150867346875001,-0.00608378619375,0.030803383125,0.0250073956109375,0.0141615992625,-0.009127686290625001,0.015869761743625,-0.010958556390624999,-0.012998547918281249,-0.039504874515624996,0.0106979253125,0.01700042085,-0.002604378640625,0.02084322703125,0.030859358796875,0.07505586726562499,0.019067374809375,-0.10191251765625,-0.026006241906249998,-0.047772568234375,-0.0225939113675,0.0361513486875,-0.00958636515625,0.005696997026562499,0.0009894751187500004,0.03013342728125,-0.00880371684375,0.03674879507812499,0.024124882781250002,-0.029399576015625,-0.024997744675000003,-0.05070753615625,0.0313155348725,0.002575418878125,0.005519026109375,-0.05591307903124999,0.0281892310625,-0.03541215253125,-0.07037230915624999,-0.037092981328125,0.013661958040625,0.010150755915625,0.00464935505625,-0.04271175659375,-0.048959364375,0.034574696328125,0.07233478540624999,0.01784359430625,0.0194107177171875,-0.072066672625,0.014341187478125,-0.006838044025000002,0.02312758503109375,0.053927468859375,-0.02893340253125,0.028794135621875,0.045664569265624996,0.039563965140625004,-0.046501012734375,0.065077949234375,0.04449139196875,0.007535738353125,0.043328710500000006,-0.0111408846265625,0.0476011903125,0.060015349999999995,-0.031573955609374996,0.042777720843750006,0.039751312859375,-0.045557269625,0.015271656046875002,-0.0354880490625,0.08538222071875,0.04966688990625,0.056357682296875,-0.011723008359374999,-0.029344679578124998,-0.0026356525624999998,0.05605940871875,0.0239344324375,0.03265417645,0.0010181780718749999,0.076328233859375,-0.0031451877390625002,0.013421614153125,0.10775338210937499,0.046965805359375,0.029762421328125,-0.057406333812499995,0.05597286525,-0.0060815406249999995,0.03258119896875,0.085884606015625,0.0047218173609375,0.024015754907812503,0.0016205940656249997,0.00977695415,0.0248720199375,0.02193678424375,0.02297564028125,-0.02170162459375,-0.016097422159375,0.0036265405412500003,0.058745011828125,0.014267859934375,0.05047798946875,0.0011764822421875,-0.0066052294703125005,-0.05816269984375,-0.0021058192984375,-0.004860934460937501,-0.11327106140625,-0.0204606366775,-0.0118132771265625,0.011304225534375,0.06806309021875,-0.012411606234374999,0.042336594859375,-0.04588128365625,0.0032292451499999998,0.002116435284375,0.05678600528125,-0.019285949515624998,0.018476397046875002,0.020250683071875,0.029468594703125003,0.047492925046874995,0.025336735062499997,-0.021452310171875003,-0.0055234529,-0.010190777515625,-0.02390919653125,0.054283543546875,-0.0089797622421875,-0.0196026405725,0.0847159765,-0.008061421078125,-0.0096810058890625,0.0025359010559375,-0.070020598203125,-0.071642143765625,0.041324847953125,0.062386370046875,0.02080815875,0.03997223459375,-0.004368696557812499,-0.061350179687500006,-0.0379680811875,0.028993340656249998,-0.018274929603124997,-0.0164239366015625,0.027168593468750002,-0.016546095809062498,0.053955401365624996,-0.0365716815625,0.035633695312500005,0.02898745825,-0.0543745755625,0.02312739328125,0.029107762598437503,-0.014907261559375,-0.0393391562734375,0.0266410936875,-0.003273399434375,-0.0365162964375,0.005375640290625,0.04377122634453125,0.007220736701875,0.0027202672781249998,-0.046226400200000003,-0.019703925796875,0.0267226415203125,-0.0313677562890625,-0.018290202359375,0.0116326953546875,0.09366585175,-0.044070507687499996,-0.01559544946875,0.081022457265625,0.0634066775625,-0.048881354125,0.0031107287671875003,-0.02833384091875,-0.0053156806781249994,0.079171438671875,0.07384103956249999,-0.0623021398125,0.06140550584375,0.0487548321875,0.0005419291718749999,-0.02468360628125,-0.064845638109375,-0.038376832953125,-0.023363560046875,0.010565507843749999,-0.02082457664375,-0.010381079196875,-0.03493705171875,0.0830325743125,-0.024592210421875,-0.055243339578125,-0.039002618171875,-0.068491207046875,-0.003042380805,0.0229049883125,-0.045181625687500004,0.0007183075796874999,0.00022675300312499994,0.010043045665625002,0.06768922384375001,0.006879946099999999,-0.031594079140624995,-0.07930963040625,-0.0192133980625,-0.07839539546874999,0.0880084346875,0.022715694093750002,-0.016752869099999998,0.03304357490625,-0.08040172209374999,-0.03786231021875,-0.019575631078125003]"), SubjUID: SubjectFixtures.Get("actress-1").SubjUID, FaceSrc: "", SampleRadius: 0.27852392873736237, Samples: 4, Collisions: 0, CollisionRadius: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "actor-1": Face{ ID: "PI6A2XGOTUXEFI7CBF4KCI5I2I3JEJHS", EmbeddingJSON: []byte("[0.029390826499999998,-0.0503012115,-0.0038545094999999988,0.0509694235,0.031093432499999997,0.0496081305,0.029921502000000003,-0.011004544,-0.060369486,0.017543245,0.01045707515,-0.099466162,-0.00480026345,-0.04493461,-0.0037644171749999997,-0.065234118,-0.0040764575,0.054459017,0.022406583,0.0096438375,-0.110314265,0.016590626,-0.0228292765,-0.1048702,-0.0763408,-0.006629400999999999,0.004310676500000001,-0.029119649,0.01620591965,0.015485259999999999,0.008847230999999999,0.05485049,-0.034671595,0.0115840045,-0.007419231,-0.093930635,0.0017309952,-0.0048228687,-0.05732045499999999,-0.033113999500000005,-0.0240111475,0.0323214015,0.00287205625,-0.030934734,0.00156168245,-0.048679148000000005,0.02641126,-0.0112433873,0.012481417250000001,-0.065828795,-0.03307603,-0.0117135982,0.048581928999999996,0.028982857,0.005623224499999999,-0.032749998,0.011234884625,-0.0006842143500000002,0.026518498,0.061320491,-0.0146354356,-0.079900327,0.0683921215,0.007673159000000001,-0.0036813074999999997,-0.0450446075,0.02894235215,-0.039071353,-0.045876458,-0.0352887335,-0.07320109999999999,-0.015539629999999999,0.0289246405,-0.049284593,-0.01250326,-0.0337509495,0.046399666,-0.071127149,0.08158958499999999,-0.0426160325,-0.0080168428,0.0136308075,0.02569515,0.043871697,0.0033857435,0.058685176000000006,-0.01749069625,-0.053259678,0.049114284,-0.039802356,0.0080722875,-0.0296135,-0.0043557191000000006,0.0014750100000000006,-0.009338751650000001,0.0276961965,0.00885040575,0.016889396,0.0085062253,0.0206174708,0.026253349723,-0.037348458,0.019311317,0.012004956,-0.018269215,-0.0280598629,-0.042533084000000006,-0.04640435,0.003540217,-0.032545467,-0.013042198,0.069853378,-0.0463841565,-0.027688966500000002,-0.059565311999999995,0.0955551455,-0.00281534995,-0.00056369025,0.056012735,0.064883204,-0.004080717500000001,-0.0589001255,0.0204381845,0.00573572365,0.0227016705,-0.0095095435,0.049776725499999994,-0.0318561775,0.013517221,0.05898059,0.0099591405,-0.0467890275,0.020263018,0.0853258175,0.0098792975,0.0248817635,-0.044659859999999996,-0.022181526,0.0473887315,0.022208215000000003,-0.03485217,0.068261088,-0.01371124975,0.023889135500000002,-0.004693188599999999,0.061553551,-0.000011999000000000384,-0.0158730365,-0.006931088,0.09489299500000001,0.055977795,0.06602641000000001,0.01054402925,-0.01124513895,0.002503631,0.0072078265,-0.014834385499999998,-0.046107534000000006,-0.007856566499999999,-0.0422721125,-0.0423789265,-0.0212909215,-0.00794488725,-0.0469044435,-0.071824202,0.0225725725,-0.0319154,0.026527513,-0.009888712899999999,0.02953384,0.085858678,0.013506947,0.0678732135,0.042902051499999996,-0.062338507,0.0354902925,-0.01188858515,0.0286265445,0.019621773500000002,-0.02367736825,0.031068825,0.071462768,0.0546697175,-0.028328653999999998,0.0338450425,0.0414083,0.064161343,-0.014787015499999999,0.042576257,-0.052504155999999996,-0.009431747,0.054281609999999994,-0.021365432499999996,-0.010823029500000001,0.031537834,0.027937777499999997,-0.051239634,-0.0008470490000000008,0.0361261665,-0.0580307265,-0.0315868765,-0.0055125591500000005,0.01400582125,-0.0184045163,-0.046149815,-0.005499571,0.0155790405,0.0583802535,0.039215091,0.0008411794999999998,-0.041732420000000006,-0.050039497,0.007283665000000001,0.0431485005,-0.00677296875,0.0601975825,0.046510825,0.023623201,-0.01524039935,0.07721521,0.074249245,0.0407936515,0.00849325405,0.02431605585,0.011315986,0.01000438185,0.000004355499999999894,-0.0256082855,0.027331278,0.026526522,0.045884533000000005,0.064017159,-0.035494845,0.014849005,-0.07764901299999999,-0.046943987,-0.004783612,-0.0019289365000000006,0.044880989999999996,-0.0615054725,0.008713913,-0.064159369,-0.108074245,-0.0245115032,-0.0346285845,-0.060331363,-0.0337360495,-0.0928075975,0.023803201500000003,0.0215816405,0.039825595000000005,-0.023639452000000002,0.01902793,-0.00781150095,-0.046295049,0.015229914,-0.044872945,-0.0181105295,0.018318828500000002,-0.085241333,-0.00763042895,0.045985624,0.078587918,0.0237581805,0.019066963,-0.014184376,0.0314069,-0.0208157225,0.013775869999999999,-0.092092003,0.060038437,0.0562684335,0.01282044765,-0.043142775,-0.077564127,0.0211277365,-0.013994697,0.0015711942999999998,0.0226966145,0.099338087,0.0291462905,0.093184027,-0.045245903500000004,0.0520713405,-0.069911768,0.0341777035,-0.0035331141,0.005852487999999998,0.0426323475,-0.0029093645,-0.03406806,-0.00466204385,-0.020408429999999998,0.07412659699999999,0.0555368515,0.035822505500000004,-0.019567507499999998,-0.0317213775,0.0006759230000000001,-0.0320736795,0.01196724155,0.0319717745,0.02698861,-0.0009364279,-0.0356625695,0.011958187,0.0374467985,0.0545301175,-0.09391315,0.048995292999999995,-0.04715971,-0.01018323015,-0.02479688875,-0.034046104650000006,0.0157533374,-0.0087085585,-0.00108834735,-0.0443082275,0.0403492,0.009395348,0.0366207795,0.055315856499999996,0.0932063675,-0.00557909673,0.0502743045,-0.08796758,-0.0131685065,-0.026735282,-0.0241287825,-0.0381497525,0.0056856297,0.033867326,0.05904681,-0.0679266085,-0.0335014595,0.032558654,0.041723721,0.017434435499999998,-0.045156486499999995,-0.029794047499999997,-0.0027904705000000004,0.020673108750000002,-0.0192013875,-0.0299808695,-0.03081326245,0.00125815955,-0.075886538,-0.04229379,0.039182544,-0.003952550000000001,-0.0143515505,-0.0330433685,-0.030146457499999998,-0.026057409,-0.0164466015,-0.053462672499999996,0.01185499725,0.028812123999999998,-0.0368386395,0.0232451215,-0.01108514465,-0.007439916499999999,-0.033431644499999996,0.046813843,0.01008481285,-0.0181223735,-0.0159577681,-0.0033102907500000005,-0.034488053000000005,0.06935485,0.0379800925,0.0325609615,-0.0733929885,0.024054515999999998,-0.09723248000000001,-0.0443772245,-0.021324694499999998,0.0103385705,0.055247911499999997,-0.0556644675,-0.0431905165,-0.039941268,-0.0346950015,-0.0587926,-0.0163988131,0.027000692,-0.00154901115,-0.018861745,0.016058999650000003,0.0137215953,0.033349326,0.01698440525,-0.00412060125,0.0015065590000000002,0.046087469000000006,0.054306643,-0.033629904,0.002419951,0.0393065175,-0.072762359,-0.05446597,0.008974321,-0.068849205,0.105380715,0.08792094249999999,-0.01965546775,-0.0735049575,0.011614979,-0.01172863955,0.019627030900000002,0.023582547000000002,0.029378214,-0.00484438543,-0.04092678,0.0227958605,0.00478901805,-0.0441016925,0.009984607,-0.0034369715,0.08558102000000001,-0.0366258695,-0.07055201,0.0458065275,0.029891107,0.0032485696499999998,0.0416649925,-0.006772525850000001,0.0266587225,-0.037922555499999996,0.0450138765,-0.00031528125,-0.024871631499999998,0.0259149825,0.008122148,0.0082324845,-0.01057201585,-0.02999843425,-0.068303585,-0.00490130815,0.030564248999999998,-0.053122275,-0.029750361000000003,-0.022997867999999998,-0.0175231255,0.031132409,0.0018893698000000002,-0.0022311989,0.0064160765,-0.04024497,-0.105197768,0.00480071625,0.0125502665,0.0240250565,-0.03232351,0.054054075,-0.00419136315,-0.0627546015,-0.048507734999999996,-0.0187147505,0.0251195347,0.0294110515,0.11645791,0.039039331499999996,0.0519267515,-0.0652619505,-0.0144988885,0.134864065,-0.0372120825,-0.036438243,-0.0330626875,-0.031956766,-0.094570108,-0.0443558225,0.09487513,0.0673500685,0.0307305825,0.010350817415,-0.052975773500000004,-0.021578872,0.057038174999999997,-0.0035335995999999995,0.0053534458,0.0302415495,-0.061024507000000006,0.0104371503,0.000001594999999999635,-0.089924738,-0.00963383915,-0.051207721,0.062871485,-0.0676942725,-0.01274987815,-0.033068996,-0.0032600508500000005,-0.0482352155,-0.0400539235,0.04832185,0.0171953418,0.0162546295,0.052375985,0.043627676500000004,-0.060105043999999996,0.0125964665,0.0040247465,-0.0207374005,-0.0084052233,-0.031770002,-0.02711991625,0.0463117675,-0.0348302765,-0.0784637,0.0499060845]"), SubjUID: SubjectFixtures.Get("actor-1").SubjUID, FaceSrc: "", SampleRadius: 0.3239983399779298, Samples: 4, Collisions: 0, CollisionRadius: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, }
var Faceless = []string{""}
Faceless can be used as argument to match unmatched face markers.
var FileFixtures = FileMap{ "exampleFileName.jpg": { ID: 1000000, Photo: PhotoFixtures.Pointer("19800101_000002_D640C559"), PhotoID: PhotoFixtures.Pointer("19800101_000002_D640C559").ID, PhotoUID: PhotoFixtures.Pointer("19800101_000002_D640C559").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96087uy", FileUID: "fs6sg6bw45bnlqdw", FileName: "2790/07/27900704_070228_D6D51B6C.jpg", FileRoot: RootOriginals, OriginalName: "Vacation/exampleFileNameOriginal.jpg", FileHash: "2cad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileSize: 4278906, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 3648, FileHeight: 2736, FileOrientation: 0, FileProjection: "equirectangular", FileAspectRatio: 1.33333, FileMainColor: "green", FileColors: "929299991", FileLuminance: "8836BD496", FileDiff: 968, FileChroma: 25, FileError: "", ModTime: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC).Unix(), Share: []FileShare{ FileShareFixtures.Get("FileShare1", 0, 0, ""), FileShareFixtures.Get("FileShare2", 0, 0, ""), }, Sync: []FileSync{}, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 414671279, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 847648638, DeletedAt: nil, }, "exampleDNGFile.dng": { ID: 1000001, Photo: PhotoFixtures.Pointer("Photo01"), PhotoID: PhotoFixtures.Pointer("Photo01").ID, PhotoUID: PhotoFixtures.Pointer("Photo01").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080aa", FileUID: "fs6sg6bw45bn0001", FileName: "2790/02/Photo01.dng", FileRoot: RootOriginals, OriginalName: "", FileHash: "3cad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileSize: 661858, FileCodec: "jpeg", FileType: "raw", MediaType: string(media.Raw), FileMime: "image/DNG", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "gold", FileColors: "5552E2222", FileLuminance: "444428399", FileDiff: 747, FileChroma: 12, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 414671279, UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), UpdatedIn: 847648638, DeletedAt: nil, }, "exampleXmpFile.xmp": { ID: 1000002, Photo: PhotoFixtures.Pointer("Photo01"), PhotoID: PhotoFixtures.Pointer("Photo01").ID, PhotoUID: PhotoFixtures.Pointer("Photo01").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ab", FileUID: "fs6sg6bw45bn0003", FileName: "2790/02/Photo01.xmp", FileRoot: RootOriginals, OriginalName: "", FileHash: "ocad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileSize: 858, FileCodec: "", FileType: "xmp", MediaType: string(media.Sidecar), FileMime: "", FilePrimary: false, FileSidecar: true, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 0, FileHeight: 0, FileOrientation: 0, FileProjection: "", FileAspectRatio: 1, FileMainColor: "", FileColors: "", FileLuminance: "", FileDiff: 0, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 12361491, UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), UpdatedIn: 9537701, DeletedAt: nil, }, "bridge.jpg": { ID: 1000003, Photo: PhotoFixtures.Pointer("Photo04"), PhotoID: PhotoFixtures.Pointer("Photo04").ID, PhotoUID: PhotoFixtures.Pointer("Photo04").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ac", FileUID: "fs6sg6bw45bn0004", FileName: "Germany/bridge.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileSize: 961858, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 12361491, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 12361490, DeletedAt: nil, }, "reunion.jpg": { ID: 1000004, Photo: PhotoFixtures.Pointer("Photo05"), PhotoID: PhotoFixtures.Pointer("Photo05").ID, PhotoUID: PhotoFixtures.Pointer("Photo05").PhotoUID, InstanceID: "", FileUID: "fs6sg6bw45bn0005", FileName: "2015/11/20151101_000000_51C501B5.jpg", FileRoot: RootOriginals, OriginalName: "2015/11/reunion.jpg", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileSize: 81858, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "blue", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 4, FileError: "Error", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 12361491, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 2361491, DeletedAt: nil, }, "Quality1FavoriteTrue.jpg": { ID: 1000005, Photo: PhotoFixtures.Pointer("Photo17"), PhotoID: PhotoFixtures.Pointer("Photo17").ID, PhotoUID: PhotoFixtures.Pointer("Photo17").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ad", FileUID: "fs6sg6bw45bn0006", FileName: "1990/04/Quality1FavoriteTrue.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd819", FileSize: 500, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "blue", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 26, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 2361491, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 2361498, DeletedAt: nil, }, "missing.jpg": { ID: 1000006, Photo: PhotoFixtures.Pointer("Photo15"), PhotoID: PhotoFixtures.Pointer("Photo15").ID, PhotoUID: PhotoFixtures.Pointer("Photo15").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ae", FileUID: "fs6sg6bw45bn0007", FileName: "1990/missing.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd819", FileSize: 500, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: true, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "blue", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 26, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 2361491, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 2361491, DeletedAt: nil, }, "Photo18.jpg": { ID: 1000007, Photo: nil, PhotoID: 1000018, PhotoUID: "ps6sg6be2lvl0y25", InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080af", FileUID: "ft6es39w45bnlqdw", FileName: "Archived/Photo18.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd820", FileSize: 500, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "green", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 2361491, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 8361491, DeletedAt: nil, }, "Video.mp4": { ID: 1000008, Photo: PhotoFixtures.Pointer("Photo10"), PhotoID: PhotoFixtures.Pointer("Photo10").ID, PhotoUID: PhotoFixtures.Pointer("Photo10").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ag", FileUID: "fs6sg6bw45bn0007", FileName: "Holiday/Video.mp4", FileRoot: RootOriginals, OriginalName: "", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd831", FileSize: 7799202, FileCodec: "avc1", FileType: "mp4", MediaType: string(media.Video), FileMime: "video/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: true, FileDuration: 17000000000, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "green", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Video.jpg": { ID: 1000014, Photo: PhotoFixtures.Pointer("Photo10"), PhotoID: PhotoFixtures.Pointer("Photo10").ID, PhotoUID: PhotoFixtures.Pointer("Photo10").PhotoUID, InstanceID: "", FileUID: "fs6sg6bw45bn0008", FileName: "Holiday/Video.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "abgt9168fa6acc5c5c2965ddf6ec465ca42fd831", FileSize: 7799202, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "green", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "VideoWithError.mp4": { ID: 1000009, Photo: PhotoFixtures.Pointer("Photo10"), PhotoID: PhotoFixtures.Pointer("Photo10").ID, PhotoUID: PhotoFixtures.Pointer("Photo10").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ah", FileUID: "fs6sg6bw45bn0009", FileName: "Holiday/VideoError.mp4", FileRoot: RootOriginals, OriginalName: "", FileHash: "acad9168fa6acc5c5c2965ddf6ec465ca42fd832", FileSize: 500, FileCodec: "avc1", FileType: "mp4", MediaType: string(media.Video), FileMime: "video/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: true, FileDuration: 17000000000, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "green", FileColors: "266111000", FileLuminance: "DC42844C8", FileDiff: 800, FileChroma: 0, FileError: "Error", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "bridge1.jpg": { ID: 1000010, Photo: PhotoFixtures.Pointer("Photo02"), PhotoID: PhotoFixtures.Pointer("Photo02").ID, PhotoUID: PhotoFixtures.Pointer("Photo02").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ai", FileUID: "fs6sg6bq45bnlqd0", FileName: "London/bridge1.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd828", FileSize: 961851, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "bridge2.jpg": { ID: 1000011, Photo: PhotoFixtures.Pointer("Photo03"), PhotoID: PhotoFixtures.Pointer("Photo03").ID, PhotoUID: PhotoFixtures.Pointer("Photo03").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080aj", FileUID: "fs6sg6bw15bnlqdw", FileName: "1990/04/bridge2.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd818", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "bridge3.jpg": { ID: 1000012, Photo: PhotoFixtures.Pointer("Photo03"), PhotoID: PhotoFixtures.Pointer("Photo03").ID, PhotoUID: PhotoFixtures.Pointer("Photo03").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080aj", FileUID: "fs6sg6bwhhbnlqdn", FileName: "London/bridge3.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5ba965adf6ec465ca42fd818", FileSize: 921851, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "bridge2.mp4": { ID: 1000013, Photo: PhotoFixtures.Pointer("Photo03"), PhotoID: PhotoFixtures.Pointer("Photo03").ID, PhotoUID: PhotoFixtures.Pointer("Photo03").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080al", FileUID: "fs6sg6bwhhbnlqdy", FileName: "1990/04/bridge2.mp4", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5ba965adf6ec465ca42fd819", FileSize: 921851, FileCodec: "avc1", FileType: "mp4", MediaType: string(media.Video), FileMime: "image/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: true, FileDuration: 17000000000, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo19.jpg": { ID: 1000019, Photo: PhotoFixtures.Pointer("Photo19"), PhotoID: PhotoFixtures.Pointer("Photo19").ID, PhotoUID: PhotoFixtures.Pointer("Photo19").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080am", FileUID: "fs6sg6bqhhinlqdn", FileName: "1990/04/Photo19.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd811", FileSize: 921831, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo25.jpg": { ID: 1000020, Photo: PhotoFixtures.Pointer("Photo25"), PhotoID: PhotoFixtures.Pointer("Photo25").ID, PhotoUID: PhotoFixtures.Pointer("Photo25").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080an", FileUID: "fs6sg6bqhhinlplk", FileName: "2007/12/PhotoWithEditedAt.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd887", FileSize: 921831, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 2200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2008, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2007, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2007, 3, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo25_2.jpg": { ID: 1000021, Photo: PhotoFixtures.Pointer("Photo25"), PhotoID: PhotoFixtures.Pointer("Photo25").ID, PhotoUID: PhotoFixtures.Pointer("Photo25").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec96080ao", FileUID: "fs6sg6bqhhinlpld", FileName: "2007/12/PhotoWithEditedAt_2.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd895", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 2200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2008, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo27.jpg": { ID: 1000022, Photo: PhotoFixtures.Pointer("Photo27"), PhotoID: PhotoFixtures.Pointer("Photo27").ID, PhotoUID: PhotoFixtures.Pointer("Photo27").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlple", FileName: "2000/12/PhotoToBeBatchApproved2.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd896", FileSize: 900, FileCodec: "", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2008, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo27.mp4": { ID: 1000023, Photo: PhotoFixtures.Pointer("Photo27"), PhotoID: PhotoFixtures.Pointer("Photo27").ID, PhotoUID: PhotoFixtures.Pointer("Photo27").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplf", FileName: "2000/12/PhotoToBeBatchApproved2.mp4", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd897", FileSize: 900, FileCodec: "avc1", FileType: "mp4", MediaType: string(media.Video), FileMime: "video/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: false, FileDuration: 1000000000, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2008, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo24.jpg": { ID: 1000024, Photo: PhotoFixtures.Pointer("Photo24"), PhotoID: PhotoFixtures.Pointer("Photo24").ID, PhotoUID: PhotoFixtures.Pointer("Photo24").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplg", FileName: "2020/vacation/PhotoMerge2.JPG", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd898", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo24.cr2": { ID: 1000025, Photo: PhotoFixtures.Pointer("Photo24"), PhotoID: PhotoFixtures.Pointer("Photo24").ID, PhotoUID: PhotoFixtures.Pointer("Photo24").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplh", FileName: "2020/vacation/PhotoMerge2.CR2", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd899", FileSize: 900, FileCodec: "jpeg", FileType: "raw", MediaType: string(media.Raw), FileMime: "image/x-canon-cr2", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "", FileColors: "", FileLuminance: "", FileDiff: 0, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo23.jpg": { ID: 1000026, Photo: PhotoFixtures.Pointer("Photo23"), PhotoID: PhotoFixtures.Pointer("Photo23").ID, PhotoUID: PhotoFixtures.Pointer("Photo23").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlpli", FileName: "2020/vacation/PhotoMerge.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd911", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo22.jpg": { ID: 1000027, Photo: PhotoFixtures.Pointer("Photo22"), PhotoID: PhotoFixtures.Pointer("Photo22").ID, PhotoUID: PhotoFixtures.Pointer("Photo22").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplj", FileName: "Mexico-With-Family/Photo22.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd912", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2010, 1, 1, 8, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2010, 1, 1, 8, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo22-stack.jpg": { ID: 1000028, Photo: PhotoFixtures.Pointer("Photo22"), PhotoID: PhotoFixtures.Pointer("Photo22").ID, PhotoUID: PhotoFixtures.Pointer("Photo22").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlolk", FileName: "Mexico-Favorites/IMG-1234.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd913", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2010, 1, 1, 8, 5, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2010, 1, 1, 8, 5, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo21.mp4.jpg": { ID: 1000029, Photo: PhotoFixtures.Pointer("Photo21"), PhotoID: PhotoFixtures.Pointer("Photo21").ID, PhotoUID: PhotoFixtures.Pointer("Photo21").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlpll", FileName: "2018/01/20180101_130410_418COOO0.mp4.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd914", FileSize: 900, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo21.mp4": { ID: 1000030, Photo: PhotoFixtures.Pointer("Photo21"), PhotoID: PhotoFixtures.Pointer("Photo21").ID, PhotoUID: PhotoFixtures.Pointer("Photo21").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplm", FileName: "2018/01/20180101_130410_418COOO0.mp4", FileRoot: RootOriginals, OriginalName: "my-videos/IMG_88888.MP4", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd915", FileSize: 900, FileCodec: "avc1", FileType: "mp4", FileMime: "video/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: false, FileDuration: 115000000000, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "FileWithoutPhoto.mp4": { ID: 1000031, PhotoUID: "", InstanceID: "", FileUID: "fs6sg6bqhhinlpln", FileName: "FileWithoutPhoto.mp4", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd916", FileSize: 900, FileCodec: "avc1", FileType: "mp4", FileMime: "video/mp4", FilePrimary: false, FileSidecar: false, FileVideo: true, FileMissing: false, FilePortrait: false, FileDuration: 115000000000, FileWidth: 200, FileHeight: 1100, FileOrientation: 6, FileProjection: "", FileAspectRatio: 2, FileMainColor: "red", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2020, 12, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo06.png": { ID: 1000032, Photo: PhotoFixtures.Pointer("Photo06"), PhotoID: PhotoFixtures.Pointer("Photo06").ID, PhotoUID: PhotoFixtures.Pointer("Photo06").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplo", FileName: "2016/11/Photo06.png", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd917", FileSize: 7799202, FileCodec: "deflate/inflate", FileType: "png", FileMime: "image/png", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "", FileColors: "", FileLuminance: "", FileDiff: 0, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo06.jpg": { ID: 1000033, Photo: PhotoFixtures.Pointer("Photo06"), PhotoID: PhotoFixtures.Pointer("Photo06").ID, PhotoUID: PhotoFixtures.Pointer("Photo06").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplp", FileName: "2016/11/Photo06.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd918", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "white", FileColors: "44444E449", FileLuminance: "FFFFF2FF9", FileDiff: 1022, FileChroma: 8, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo07.heic": { ID: 1000034, Photo: PhotoFixtures.Pointer("Photo07"), PhotoID: PhotoFixtures.Pointer("Photo07").ID, PhotoUID: PhotoFixtures.Pointer("Photo07").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplq", FileName: "2016/11/Photo07.heic", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd918", FileSize: 199202, FileCodec: "heic", FileType: "heif", FileMime: "image/heif", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "", FileColors: "", FileLuminance: "", FileDiff: 0, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo07.heic.jpg": { ID: 1000035, Photo: PhotoFixtures.Pointer("Photo07"), PhotoID: PhotoFixtures.Pointer("Photo07").ID, PhotoUID: PhotoFixtures.Pointer("Photo07").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplr", FileName: "2016/11/Photo07.heic.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd920", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "white", FileColors: "44444E449", FileLuminance: "FFFFF2FF9", FileDiff: 1022, FileChroma: 8, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo08.jpg": { ID: 1000036, Photo: PhotoFixtures.Pointer("Photo08"), PhotoID: PhotoFixtures.Pointer("Photo08").ID, PhotoUID: PhotoFixtures.Pointer("Photo08").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlpls", FileName: "2016/11/Photo08.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd921", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo09.jpg": { ID: 1000036, Photo: PhotoFixtures.Pointer("Photo09"), PhotoID: PhotoFixtures.Pointer("Photo09").ID, PhotoUID: PhotoFixtures.Pointer("Photo09").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplt", FileName: "2016/11/Photo09.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd922", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo09(L).jpg": { ID: 1000037, Photo: PhotoFixtures.Pointer("Photo09"), PhotoID: PhotoFixtures.Pointer("Photo09").ID, PhotoUID: PhotoFixtures.Pointer("Photo09").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplu", FileName: "2016/11/Photo09(L).jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd923", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo11.jpg": { ID: 1000038, Photo: PhotoFixtures.Pointer("Photo11"), PhotoID: PhotoFixtures.Pointer("Photo11").ID, PhotoUID: PhotoFixtures.Pointer("Photo11").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplv", FileName: "2016/12/Photo11.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd924", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo12.jpg": { ID: 1000039, Photo: PhotoFixtures.Pointer("Photo12"), PhotoID: PhotoFixtures.Pointer("Photo12").ID, PhotoUID: PhotoFixtures.Pointer("Photo12").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplx", FileName: "2016/01/Photo12.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd925", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo13.jpg": { ID: 1000040, Photo: PhotoFixtures.Pointer("Photo13"), PhotoID: PhotoFixtures.Pointer("Photo13").ID, PhotoUID: PhotoFixtures.Pointer("Photo13").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlply", FileName: "2016/06/Photo13.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd926", FileSize: 199202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: false, FileDuration: 0, FileWidth: 16000, FileHeight: 16000, FileOrientation: 1, FileProjection: "", FileAspectRatio: 1, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 734, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo14.jpg": { ID: 1000041, Photo: PhotoFixtures.Pointer("Photo14"), PhotoID: PhotoFixtures.Pointer("Photo14").ID, PhotoUID: PhotoFixtures.Pointer("Photo14").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlplz", FileName: "2018/11/Photo14.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd927", FileSize: 8202, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 534, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo16.jpg": { ID: 1000042, Photo: PhotoFixtures.Pointer("Photo16"), PhotoID: PhotoFixtures.Pointer("Photo16").ID, PhotoUID: PhotoFixtures.Pointer("Photo16").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlrta", FileName: "1990/Photo16.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd928", FileSize: 8402, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 234, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "Photo20.jpg": { ID: 1000043, Photo: PhotoFixtures.Pointer("Photo20"), PhotoID: PhotoFixtures.Pointer("Photo20").ID, PhotoUID: PhotoFixtures.Pointer("Photo20").PhotoUID, InstanceID: "", FileUID: "fs6sg6bqhhinlrtb", FileName: "1990/04/Photo20.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9a68fa6acc5c5ba965adf6ec465ca42fd929", FileSize: 6402, FileCodec: "", FileType: "jpg", FileMime: "image/jpeg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 640, FileHeight: 1136, FileOrientation: 1, FileProjection: "", FileAspectRatio: 0.56, FileMainColor: "grey", FileColors: "141101110", FileLuminance: "BD9A22751", FileDiff: 9934, FileChroma: 0, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 9359616, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "%photo28.jpg": { ID: 1000044, Photo: PhotoFixtures.Pointer("%photo28"), PhotoID: PhotoFixtures.Pointer("%photo28").ID, PhotoUID: PhotoFixtures.Pointer("%photo28").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608331", FileUID: "fs6sg6bw15bnl331", FileName: "%abc/%folderx/%photo28.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd331", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo29%.jpg": { ID: 1000045, Photo: PhotoFixtures.Pointer("photo29%"), PhotoID: PhotoFixtures.Pointer("photo29%").ID, PhotoUID: PhotoFixtures.Pointer("photo29%").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608332", FileUID: "fs6sg6bw15bnl332", FileName: "abc%/folde%/photo29%.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd332", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo%30.jpg": { ID: 1000046, Photo: PhotoFixtures.Pointer("photo%30"), PhotoID: PhotoFixtures.Pointer("photo%30").ID, PhotoUID: PhotoFixtures.Pointer("photo%30").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608333", FileUID: "fs6sg6bw15bnl333", FileName: "ab%c/fol%de/photo%30.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd333", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "&photo31.jpg": { ID: 1000047, Photo: PhotoFixtures.Pointer("&photo31"), PhotoID: PhotoFixtures.Pointer("&photo31").ID, PhotoUID: PhotoFixtures.Pointer("&photo31").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608334", FileUID: "fs6sg6bw15bnl334", FileName: "&abc/&folde/&photo31.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd334", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo&32.jpg": { ID: 1000048, Photo: PhotoFixtures.Pointer("photo&32"), PhotoID: PhotoFixtures.Pointer("photo&32").ID, PhotoUID: PhotoFixtures.Pointer("photo&32").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608335", FileUID: "fs6sg6bw15bnl335", FileName: "tes&r/lo&c/photo&32.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd335", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo33&.jpg": { ID: 1000049, Photo: PhotoFixtures.Pointer("photo33&"), PhotoID: PhotoFixtures.Pointer("photo33&").ID, PhotoUID: PhotoFixtures.Pointer("photo33&").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608336", FileUID: "fs6sg6bw15bnl336", FileName: "tes&r/lo&c/photo33&.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd336", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "'photo34.jpg": { ID: 1000050, Photo: PhotoFixtures.Pointer("'photo34"), PhotoID: PhotoFixtures.Pointer("'photo34").ID, PhotoUID: PhotoFixtures.Pointer("'photo34").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608337", FileUID: "fs6sg6bw15bnl337", FileName: "'2020/'vacation/'photo34.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd337", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo'35.jpg": { ID: 1000051, Photo: PhotoFixtures.Pointer("photo'35"), PhotoID: PhotoFixtures.Pointer("photo'35").ID, PhotoUID: PhotoFixtures.Pointer("photo'35").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608338", FileUID: "fs6sg6bw15bnl338", FileName: "20'20/vacat'ion/photo'35.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd338", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo36'.jpg": { ID: 1000052, Photo: PhotoFixtures.Pointer("photo36'"), PhotoID: PhotoFixtures.Pointer("photo36'").ID, PhotoUID: PhotoFixtures.Pointer("photo36'").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608339", FileUID: "fs6sg6bw15bnl339", FileName: "2020'/vacation'/photo36'.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd339", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "*photo37.jpg": { ID: 1000053, Photo: PhotoFixtures.Pointer("*photo37"), PhotoID: PhotoFixtures.Pointer("*photo37").ID, PhotoUID: PhotoFixtures.Pointer("*photo37").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608340", FileUID: "fs6sg6bw15bnl340", FileName: "*2020/*vacation/*photo37.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd340", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo*38.jpg": { ID: 1000054, Photo: PhotoFixtures.Pointer("photo*38"), PhotoID: PhotoFixtures.Pointer("photo*38").ID, PhotoUID: PhotoFixtures.Pointer("photo*38").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608341", FileUID: "fs6sg6bw15bnl341", FileName: "202*3/vac*ation/photo*38.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd341", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo39*.jpg": { ID: 1000055, Photo: PhotoFixtures.Pointer("photo39*"), PhotoID: PhotoFixtures.Pointer("photo39*").ID, PhotoUID: PhotoFixtures.Pointer("photo39*").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608342", FileUID: "fs6sg6bw15bnl342", FileName: "2023*/vacatio*/photo39*.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd342", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "|photo40.jpg": { ID: 1000056, Photo: PhotoFixtures.Pointer("|photo40"), PhotoID: PhotoFixtures.Pointer("|photo40").ID, PhotoUID: PhotoFixtures.Pointer("|photo40").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608343", FileUID: "fs6sg6bw15bnl343", FileName: "|202/|vacation/|photo40.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd343", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo|41.jpg": { ID: 1000057, Photo: PhotoFixtures.Pointer("photo|41"), PhotoID: PhotoFixtures.Pointer("photo|41").ID, PhotoUID: PhotoFixtures.Pointer("photo|41").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608344", FileUID: "fs6sg6bw15bnl344", FileName: "20|22/vacat|ion/photo|41.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd344", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo42|.jpg": { ID: 1000058, Photo: PhotoFixtures.Pointer("photo42|"), PhotoID: PhotoFixtures.Pointer("photo42|").ID, PhotoUID: PhotoFixtures.Pointer("photo42|").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608345", FileUID: "fs6sg6bw15bnl345", FileName: "2022|/vacation|/photo42|.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3445", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "43photo.jpg": { ID: 1000059, Photo: PhotoFixtures.Pointer("43photo"), PhotoID: PhotoFixtures.Pointer("43photo").ID, PhotoUID: PhotoFixtures.Pointer("43photo").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608346", FileUID: "fs6sg6bw15bnl346", FileName: "2000/holiday/43photo.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3446", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "pho44to.jpg": { ID: 1000060, Photo: PhotoFixtures.Pointer("pho44to"), PhotoID: PhotoFixtures.Pointer("pho44to").ID, PhotoUID: PhotoFixtures.Pointer("pho44to").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608347", FileUID: "fs6sg6bw15bnl347", FileName: "2000/02/pho44to.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3447", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo45.jpg": { ID: 1000061, Photo: PhotoFixtures.Pointer("photo45"), PhotoID: PhotoFixtures.Pointer("photo45").ID, PhotoUID: PhotoFixtures.Pointer("photo45").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608348", FileUID: "fs6sg6bw15bnl348", FileName: "2000/02/photo45.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3448", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "\"photo46.jpg": { ID: 1000062, Photo: PhotoFixtures.Pointer("\"photo46"), PhotoID: PhotoFixtures.Pointer("\"photo46").ID, PhotoUID: PhotoFixtures.Pointer("\"photo46").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608349", FileUID: "fs6sg6bw15bnl349", FileName: "\"2000/\"02/\"photo46.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3449", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo\"47.jpg": { ID: 1000063, Photo: PhotoFixtures.Pointer("photo\"47"), PhotoID: PhotoFixtures.Pointer("photo\"47").ID, PhotoUID: PhotoFixtures.Pointer("photo\"47").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608350", FileUID: "fs6sg6bw15bnl350", FileName: "20\"00/0\"2/photo\"47.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3450", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo48\".jpg": { ID: 1000064, Photo: PhotoFixtures.Pointer("photo48\""), PhotoID: PhotoFixtures.Pointer("photo48\"").ID, PhotoUID: PhotoFixtures.Pointer("photo48\"").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608351", FileUID: "fs6sg6bw15bnl351", FileName: "2000\"/02\"/photo48\".jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3451", FileSize: 921858, FileCodec: "jpeg", FileType: string(fs.ImageJPEG), MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, " photo49.jpg": { ID: 1000065, Photo: PhotoFixtures.Pointer(" photo49"), PhotoID: PhotoFixtures.Pointer(" photo49").ID, PhotoUID: PhotoFixtures.Pointer(" photo49").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608352", FileUID: "fs6sg6bw15bnl352", FileName: " 2000/ 02/ photo49.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3452", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo 50.jpg": { ID: 1000066, Photo: PhotoFixtures.Pointer("photo 50"), PhotoID: PhotoFixtures.Pointer("photo 50").ID, PhotoUID: PhotoFixtures.Pointer("photo 50").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608353", FileUID: "fs6sg6bw15bnl353", FileName: "20 00/ 0 2/photo 50.jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3453", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", MediaType: string(media.Image), FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo51 .jpg": { ID: 1000067, Photo: PhotoFixtures.Pointer("photo51 "), PhotoID: PhotoFixtures.Pointer("photo51 ").ID, PhotoUID: PhotoFixtures.Pointer("photo51 ").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608354", FileUID: "fs6sg6bw15bnl354", FileName: "2000 /02 /photo51 .jpg", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3454", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo52.gif.jpg": { ID: 1000068, Photo: PhotoFixtures.Pointer("photo52"), PhotoID: PhotoFixtures.Pointer("photo52").ID, PhotoUID: PhotoFixtures.Pointer("photo52").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608355", FileUID: "fs6sg6bw15bnl355", FileName: "2020/GIF/photo52.gif.jpg", FileRoot: RootSidecar, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3455", FileSize: 921858, FileCodec: "jpeg", FileType: "jpg", FileMime: "image/jpg", FilePrimary: true, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 0, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, "photo52.gif": { ID: 1000069, Photo: PhotoFixtures.Pointer("photo52"), PhotoID: PhotoFixtures.Pointer("photo52").ID, PhotoUID: PhotoFixtures.Pointer("photo52").PhotoUID, InstanceID: "a698ac56-6e7e-42b9-9c3e-a79ec9608356", FileUID: "fs6sg6bw15bnl356", FileName: "2020/GIF/photo52.gif", FileRoot: RootOriginals, OriginalName: "", FileHash: "pcad9168fa6acc5c5c2965adf6ec465ca42fd3456", FileSize: 407701, FileCodec: "gif", FileType: "gif", FileMime: "image/gif", FilePrimary: false, FileSidecar: false, FileVideo: false, FileMissing: false, FilePortrait: true, FileDuration: 15000000000, FileFPS: 0.4666666666666667, FileFrames: 7, FileWidth: 1200, FileHeight: 1600, FileOrientation: 6, FileProjection: "", FileAspectRatio: 0.75, FileMainColor: "magenta", FileColors: "225221C1E", FileLuminance: "DC42844C8", FileDiff: 986, FileChroma: 32, FileError: "", Share: []FileShare{}, Sync: []FileSync{}, ModTime: time.Date(2017, 2, 6, 2, 6, 51, 0, time.UTC).Unix(), CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), CreatedIn: 935962, UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedIn: 935962, DeletedAt: nil, }, }
var FileFixturesExampleBridge = FileFixtures["bridge.jpg"]
var FileFixturesExampleBridgeVideo = FileFixtures["bridge2.mp4"]
var FileFixturesExampleJPG = FileFixtures["exampleFileName.jpg"]
var FileFixturesExampleXMP = FileFixtures["exampleXmpFile.xmp"]
FileShareShared, Error: "", Errors: 0, File: nil, Account: &ServiceFixtureWebdavDummy, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), }, "FileShare2": { FileID: 1000000, ServiceID: 1000001, RemoteName: "/20200729-015747-Dog-2020.jpg", Status: FileShareNew, Error: "", Errors: 0, File: nil, Account: &ServiceFixtureWebdavDummy2, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), }, }"FileShare1": { FileID: 1000000, ServiceID: 1000000, RemoteName: "/20100729-015747-Urlaub-2010.jpg", Status:
var FileSyncFixtures = FileSyncMap{ "FileSync1": { FileID: 1000000, ServiceID: 1000000, RemoteName: "/20200706-092527-Landscape-München-2020.jpg", Status: "uploaded", Error: "", Errors: 0, File: &FileFixturesExampleJPG, Account: &ServiceFixtureWebdavDummy, RemoteDate: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), RemoteSize: int64(888), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), }, "FileSync2": { FileID: 1000000, ServiceID: 1000001, RemoteName: "/20200706-092527-Landscape-Hamburg-2020.jpg", Status: "downloaded", Error: "", Errors: 0, File: &FileFixturesExampleJPG, Account: &ServiceFixtureWebdavDummy2, RemoteDate: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), RemoteSize: int64(160), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), }, "FileSync3": { FileID: 1000000, ServiceID: 1000000, RemoteName: "/20200706-092527-People-2020.jpg", Status: "new", Error: "", Errors: 0, File: &FileFixturesExampleJPG, Account: &ServiceFixtureWebdavDummy, RemoteDate: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), RemoteSize: int64(860), CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), }, }
var FolderFixtures = map[string]Folder{ "1990": { FolderUID: "dqo63pn35k2d495z", Path: "1990", Root: "/", FolderType: "", FolderTitle: "1990", FolderCategory: "", FolderDescription: "", FolderOrder: "name", FolderYear: 1990, FolderMonth: 7, FolderDay: 0, FolderCountry: UnknownID, FolderFavorite: false, FolderPrivate: false, FolderIgnore: false, FolderWatch: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 20, 14, 6, 0, 0, time.UTC), DeletedAt: nil, }, "1990/04": { FolderUID: "dqo63pn2f87f02xj", Path: "1990/04", Root: "/", FolderType: "", FolderTitle: "April 1990", FolderCategory: "", FolderDescription: "", FolderOrder: "name", FolderYear: 1990, FolderMonth: 4, FolderDay: 0, FolderCountry: UnknownID, FolderFavorite: false, FolderPrivate: false, FolderIgnore: false, FolderWatch: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 20, 14, 6, 0, 0, time.UTC), DeletedAt: nil, }, "2007/12": { FolderUID: "dqo63pn2f87f02oi", Path: "2007/12", Root: "/", FolderType: "", FolderTitle: "December 2007", FolderCategory: "", FolderDescription: "", FolderOrder: "name", FolderYear: 2007, FolderMonth: 12, FolderDay: 0, FolderCountry: "de", FolderFavorite: false, FolderPrivate: false, FolderIgnore: false, FolderWatch: false, CreatedAt: time.Date(2007, 12, 25, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 3, 30, 14, 6, 0, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 20, 14, 6, 0, 0, time.UTC), DeletedAt: nil, }, }
var GeoApi = "places"
var IndexUpdateInterval = 3 * time.Hour // 3 Hours
var KeywordFixtures = KeywordMap{ "bridge": { ID: 1000000, Keyword: "bridge", Skip: false, }, "beach": { ID: 1000001, Keyword: "beach", Skip: false, }, "flower": { ID: 1000002, Keyword: "flower", Skip: false, }, "kuh": { ID: 1000003, Keyword: "kuh", Skip: false, }, "actress": { ID: 1000004, Keyword: "actress", Skip: false, }, "%toss": { ID: 1000005, Keyword: "%toss", Skip: false, }, "ca%t": { ID: 1000006, Keyword: "ca%t", Skip: false, }, "magic%": { ID: 1000007, Keyword: "magic%", Skip: false, }, "&hogwarts": { ID: 1000008, Keyword: "&hogwarts", Skip: false, }, "love&trust": { ID: 1000009, Keyword: "love&trust", Skip: false, }, "countryside&": { ID: 10000010, Keyword: "countryside&", Skip: false, }, "'grandfather": { ID: 10000011, Keyword: "'grandfather", Skip: false, }, "grandma's": { ID: 10000012, Keyword: "grandma's", Skip: false, }, "cheescake'": { ID: 10000013, Keyword: "cheescake'", Skip: false, }, "*rating": { ID: 10000014, Keyword: "*rating", Skip: false, }, "three*four": { ID: 10000015, Keyword: "three*four", Skip: false, }, "tree*": { ID: 10000016, Keyword: "tree*", Skip: false, }, "|mystery": { ID: 10000017, Keyword: "|mystery", Skip: false, }, "run|stay": { ID: 10000018, Keyword: "run|stay", Skip: false, }, "pillow|": { ID: 10000019, Keyword: "pillow|", Skip: false, }, "1dish": { ID: 10000020, Keyword: "1dish", Skip: false, }, "nothing4you": { ID: 10000021, Keyword: "nothing4you", Skip: false, }, "joyx2": { ID: 10000022, Keyword: "joyx2", Skip: false, }, "\"electronics": { ID: 10000023, Keyword: "\"electronics", Skip: false, }, "sal\"mon": { ID: 10000024, Keyword: "sal\"mon", Skip: false, }, "fish\"": { ID: 10000025, Keyword: "fish\"", Skip: false, }, }
var LabelFixtures = LabelMap{ "landscape": { ID: 1000000, LabelUID: "ls6sg6b1wowuy3c2", LabelSlug: "landscape", CustomSlug: "landscape", LabelName: "Landscape", LabelPriority: 0, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "flower": { ID: 1000001, LabelUID: "ls6sg6b1wowuy3c3", LabelSlug: "flower", CustomSlug: "flower", LabelName: "Flower", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 2, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "cake": { ID: 1000002, LabelUID: "ls6sg6b1wowuy3c4", LabelSlug: "cake", CustomSlug: "kuchen", LabelName: "Cake", LabelPriority: 5, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 3, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "cow": { ID: 1000003, LabelUID: "ls6sg6b1wowuy3c5", LabelSlug: "cow", CustomSlug: "kuh", LabelName: "COW", LabelPriority: -1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 4, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "batchdelete": { ID: 1000004, LabelUID: "ls6sg6b1wowuy3c6", LabelSlug: "batch-delete", CustomSlug: "batch-delete", LabelName: "Batch Delete", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 5, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "updateLabel": { ID: 1000005, LabelUID: "ls6sg6b1wowuy3c7", LabelSlug: "update-label", CustomSlug: "update-label", LabelName: "Update Label", LabelPriority: 2, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "updatePhotoLabel": { ID: 1000006, LabelUID: "ls6sg6b1wowuy3c8", LabelSlug: "update-photo-label", CustomSlug: "update-label-photo", LabelName: "Update Photo Label", LabelPriority: 2, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "likeLabel": { ID: 1000007, LabelUID: "ls6sg6b1wowuy3c9", LabelSlug: "like-label", CustomSlug: "like-label", LabelName: "Like Label", LabelPriority: 3, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "no-jpeg": { ID: 1000008, LabelUID: "lt9k3aa1wowuy310", LabelSlug: "no-jpeg", CustomSlug: "no-jpeg", LabelName: "NO JPEG", LabelPriority: -1, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 4, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "apilikeLabel": { ID: 1000009, LabelUID: "ls6sg6b1wowuy311", LabelSlug: "api-like-label", CustomSlug: "api-like-label", LabelName: "Api Like Label", LabelPriority: -1, LabelFavorite: false, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "apidislikeLabel": { ID: 1000010, LabelUID: "ls6sg6b1wowuy312", LabelSlug: "api-dislike-label", CustomSlug: "api-dislike-label", LabelName: "Api Dislike Label", LabelPriority: -2, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "%tennis": { ID: 1000011, LabelUID: "ls6sg6b1wowuy313", LabelSlug: "%tennis", CustomSlug: "%tennis", LabelName: "%tennis", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "chem%stry": { ID: 1000012, LabelUID: "ls6sg6b1wowuy314", LabelSlug: "chem%stry", CustomSlug: "chem%stry", LabelName: "chem%stry", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "cell%": { ID: 1000013, LabelUID: "ls6sg6b1wowuy315", LabelSlug: "cell%", CustomSlug: "cell%", LabelName: "cell%", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "&friendship": { ID: 1000014, LabelUID: "ls6sg6b1wowuy316", LabelSlug: "&friendship", CustomSlug: "&friendship", LabelName: "&friendship", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "construction&failure": { ID: 1000015, LabelUID: "ls6sg6b1wowuy317", LabelSlug: "construction&failure", CustomSlug: "construction&failure", LabelName: "construction&failure", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "goal&": { ID: 1000016, LabelUID: "ls6sg6b1wowuy318", LabelSlug: "goal&", CustomSlug: "goal&", LabelName: "goal&", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "'activity": { ID: 1000017, LabelUID: "ls6sg6b1wowuy319", LabelSlug: "'activity", CustomSlug: "'activity", LabelName: "'activity", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "funera'l": { ID: 1000018, LabelUID: "ls6sg6b1wowuy320", LabelSlug: "funera'l", CustomSlug: "funera'l", LabelName: "funera'l", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "technology'": { ID: 1000019, LabelUID: "ls6sg6b1wowuy321", LabelSlug: "technology'", CustomSlug: "technology'", LabelName: "technology'", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "*tea": { ID: 1000020, LabelUID: "ls6sg6b1wowuy322", LabelSlug: "*tea", CustomSlug: "*tea", LabelName: "*tea", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "soup*menu": { ID: 1000021, LabelUID: "ls6sg6b1wowuy323", LabelSlug: "soup*menu", CustomSlug: "soup*menu", LabelName: "soup*menu", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "proposal*": { ID: 1000022, LabelUID: "ls6sg6b1wowuy324", LabelSlug: "proposal*", CustomSlug: "proposal*", LabelName: "proposal*", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "|college": { ID: 1000023, LabelUID: "ls6sg6b1wowuy325", LabelSlug: "|college", CustomSlug: "|college", LabelName: "|college", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "potato|couch": { ID: 1000024, LabelUID: "ls6sg6b1wowuy326", LabelSlug: "potato|couch", CustomSlug: "potato|couch", LabelName: "potato|couch", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "mall|": { ID: 1000025, LabelUID: "ls6sg6b1wowuy327", LabelSlug: "mall|", CustomSlug: "mall|", LabelName: "mall|", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "2020-world": { ID: 1000026, LabelUID: "ls6sg6b1wowuy328", LabelSlug: "2020-world", CustomSlug: "2020-world", LabelName: "2020-world", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "sport-2021-event": { ID: 1000027, LabelUID: "ls6sg6b1wowuy329", LabelSlug: "sport-2021-event", CustomSlug: "sport-2021-event", LabelName: "Sport 2021 Event", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "oven-3000": { ID: 1000028, LabelUID: "ls6sg6b1wowuy330", LabelSlug: "oven-3000", CustomSlug: "oven-3000", LabelName: "Oven3000", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "\"king": { ID: 1000029, LabelUID: "ls6sg6b1wowuy331", LabelSlug: "\"king", CustomSlug: "\"king", LabelName: "\"king", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "town\"ship": { ID: 1000030, LabelUID: "ls6sg6b1wowuy332", LabelSlug: "town\"ship", CustomSlug: "town\"ship", LabelName: "town\"ship", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, "ladder\"": { ID: 1000031, LabelUID: "ls6sg6b1wowuy333", LabelSlug: "ladder\"", CustomSlug: "ladder\"", LabelName: "ladder\"", LabelPriority: 1, LabelFavorite: true, LabelDescription: "", LabelNotes: "", PhotoCount: 1, LabelCategories: []*Label{}, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, New: false, }, }
var LensFixtures = LensMap{ "lens-f-380": { ID: 1000000, LensSlug: "lens-f-380", LensName: "Apple F380", LensMake: "Apple", LensModel: "F380", LensType: "", LensDescription: "", LensNotes: "Notes", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, "4.15mm-f/2.2": { ID: 1000001, LensSlug: "4.15mm-f/2.2", LensName: "Apple iPhone SE back camera 4.15mm f/2.2", LensMake: "Apple", LensModel: "iPhone SE back camera 4.15mm f/2.2", LensType: "", LensDescription: "", LensNotes: "Notes", CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), DeletedAt: nil, }, }
var LensModelIgnore = regexp.MustCompile(`(?i)\sback.*camera\s`)
LensModelIgnore is a regular expression that matches lens model substrings to be ignored.
var LinkFixtures = LinkMap{ "1jxf3jfn2k": { LinkUID: "ss62xpryd1ob7gtf", ShareUID: "as6sg6bxpogaaba8", ShareSlug: "holiday-2030", LinkToken: "1jxf3jfn2k", LinkExpires: 0, LinkViews: 12, MaxViews: 0, HasPassword: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), }, "4jxf3jfn2k": { LinkUID: "ss62xpryd1ob8gtf", ShareUID: "as6sg6bxpogaaba7", ShareSlug: "christmas-2030", LinkToken: "4jxf3jfn2k", LinkExpires: 0, LinkViews: 0, MaxViews: 0, HasPassword: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), }, "5jxf3jfn2k": { LinkUID: "ss69xpryd1ob9gtf", ShareUID: "fs6sg6bw45bn0004", ShareSlug: "fs6sg6bw45bn0004", LinkToken: "5jxf3jfn2k", LinkExpires: 0, LinkViews: 0, MaxViews: 0, HasPassword: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), }, "6jxf3jfn2k": { LinkUID: "ss61xpryd1ob1gtf", ShareUID: "ls6sg6b1wowuy3c3", ShareSlug: "ls6sg6b1wowuy3c3", LinkToken: "6jxf3jfn2k", LinkExpires: 0, LinkViews: 0, MaxViews: 0, HasPassword: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), }, "7jxf3jfn2k": { LinkUID: "ss62xpryd1ob2gtf", ShareUID: "ps6sg6b1wowuy3c3", ShareSlug: "ps6sg6b1wowuy3c3", LinkToken: "7jxf3jfn2k", LinkExpires: 0, LinkViews: 0, MaxViews: 0, HasPassword: false, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), ModifiedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), }, }
var MarkerFixtures = MarkerMap{ "1000003-1": Marker{ MarkerUID: "ms6sg6b1qekk9jx8", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", SubjUID: "js6sg6b1qekk9jx8", MarkerSrc: SrcImage, MarkerType: MarkerLabel, X: 0.308333, Y: 0.206944, W: 0.355556, H: .355556, Size: 200, Score: 100, }, "1000003-2": Marker{ MarkerUID: "ms6sg6b1wowuy3c3", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", SubjUID: "ls6sg6b1wowuy3c3", FaceID: "LRG2HJBDZE66LYG7Q5SRFXO2MDTOES52", MarkerName: "Unknown", MarkerSrc: SrcImage, MarkerType: MarkerLabel, X: 0.208333, Y: 0.106944, W: 0.05, H: 0.05, Size: 200, Score: 100, }, "1000003-3": Marker{ MarkerUID: "ms6sg6b1wowuy111", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerLabel, MarkerName: "Center", X: 0.5, Y: 0.5, W: 0, H: 0, Size: 200, Score: 100, }, "1000003-4": Marker{ MarkerUID: "ms6sg6b1wowuy222", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "Jens Mander", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.08359375,\"y\":-0.027083334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp46_v\",\"x\":0.08671875,\"y\":-0.009375,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp44\",\"x\":-0.0546875,\"y\":-0.048958335,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp44_v\",\"x\":0.06328125,\"y\":-0.033333335,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp42\",\"x\":-0.021875,\"y\":-0.03125,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp42_v\",\"x\":0.03203125,\"y\":-0.025,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp38\",\"x\":-0.0265625,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp38_v\",\"x\":0.03125,\"y\":0.0052083335,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp312\",\"x\":-0.06796875,\"y\":-0.008333334,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp312_v\",\"x\":0.06953125,\"y\":0.008333334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"mouth_lp93\",\"x\":-0.00703125,\"y\":0.09375,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"mouth_lp84\",\"x\":-0.04921875,\"y\":0.128125,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"mouth_lp82\",\"x\":-0.01328125,\"y\":0.16145833,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"mouth_lp81\",\"x\":-0.0078125,\"y\":0.13333334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp84\",\"x\":0.034375,\"y\":0.14479166,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"eye_l\",\"x\":-0.0484375,\"y\":-0.004166667,\"h\":0.030208332,\"w\":0.02265625},{\"name\":\"eye_r\",\"x\":0.0484375,\"y\":0.0052083335,\"h\":0.030208332,\"w\":0.02265625}]"), EmbeddingsJSON: []byte("[[0.013083286379677253,-0.0008417412393203858,-0.08209611917089321,-0.019111885734551474,0.021923530432215503,0.018732009048816976,0.035886940137015974,0.1130656608853727,-0.013879639663148906,-0.00007318769249725892,-0.10930376566056604,0.013017650306083043,0.03493398843961118,0.030367043595619828,-0.02661832006282799,0.02317542733842455,0.030808785430323865,-0.0110955273903513,-0.004947671380390304,-0.06481432146179103,-0.03562657031511941,0.01917426998954447,-0.03997564976901405,-0.043818762666068364,0.05985756953306272,-0.05656645149655018,0.006831462179655297,0.004125197643702118,0.08632503986770987,-0.04539499688491293,-0.007410491757254501,-0.02791636441556727,0.008375881368984935,-0.03352591464527212,-0.01024936807666946,-0.013452909148946745,-0.0455983581185236,0.005133020258791293,-0.05195581933944145,-0.07427988463687213,0.00630390028198304,-0.018452912748167127,-0.014417383661195559,-0.018022492860528778,0.05058799136684855,0.007851475361629147,-0.0033008657326001646,-0.037933898483223455,-0.03585054885081868,-0.01316437888895517,0.02913029629687692,-0.06876965414506842,0.027597906058259312,-0.08860803950803726,-0.1005048527606724,0.04859707253378557,-0.0691461480095216,-0.004108821124824582,0.024191758670076023,-0.004501372695590575,-0.003853594934054346,-0.017837990602979782,0.015521848826722015,0.0712632629325235,-0.1510830115846754,-0.00992026634344995,0.03799075369172833,0.09032564313020613,0.010611904884914678,-0.030697168365608873,-0.05355072821183228,-0.08723970013994914,0.03118943933108993,0.031918868148328394,0.0276473572229953,-0.028556344657796252,0.015007092266541835,0.027729347507862684,0.04544274754781616,-0.04999806778117011,0.0570203740294674,0.03835048879960994,-0.0027708371095958684,-0.002584607244562065,-0.058584824699194085,-0.00862370178357778,0.015049961132987713,-0.030933803486454046,0.012191597958574715,-0.0008941357107067466,-0.0348049752091627,0.027176252010889523,0.0461005164432102,-0.000611616832778758,0.009690149103200534,0.016906353393915857,-0.0540479915345624,-0.06223405395795713,-0.09107930214159932,-0.04772242706886826,0.06630155338614292,0.0371553603934971,0.061534576620184384,-0.008096183628180858,-0.03912759815393272,-0.0010451483965827953,-0.01986466956410297,-0.06292796414605956,-0.009854497586070874,-0.033622932201102754,-0.03317653787458191,0.009841683031503618,0.022866690743999052,0.010883092398172488,0.07389167704108482,-0.026557030305857217,0.018303901798465284,0.039156475488107266,0.027918357207828405,-0.0001480534094231541,0.0418863059041099,0.009360184503406473,0.0066549371575869865,-0.09114787981314919,-0.05277049334079438,-0.006547348450791211,0.05643273232859514,0.020804854646027934,0.020563210185937368,0.03710431957835912,0.007350085493263752,0.022986338887986204,-0.05778787991847159,-0.05102941878429307,0.025830275678329274,-0.03450106360057107,0.05655901476028061,-0.009602358944452714,0.04392567950170963,0.03000342953184249,-0.027931746077442407,0.017470708798638532,-0.0020853675052261425,-0.052778450846998406,0.03815768240914008,-0.015791185907723073,0.013690107091628736,-0.030241923396212355,0.02386683317712862,-0.040054973733698596,-0.0005362860328776602,-0.045667531139463646,0.004809388239980688,-0.04368660146511412,0.06624780772342401,-0.03508437913888463,-0.02735953041867514,-0.049531415215267154,0.015232385479245996,0.029788676575147145,-0.007270420735911989,-0.00483835298157672,0.06045303867951421,-0.07321751431425214,0.027037499621521587,-0.02314658845560742,0.012977987011931001,0.0338920730888843,-0.02934176132446363,0.04786481321065313,-0.0099853434624993,0.04710036333722752,0.03620079313865186,0.03142659728114243,0.020671303209698184,0.021940072146660362,0.023176980343224757,0.0273335047667591,0.017490618402760325,0.005401539498251791,0.013324607193214467,0.02206191691620473,-0.05340798466182817,-0.02666354815776871,0.035789468902129674,0.006111693256493996,-0.014217273598336879,-0.06654642278714365,0.03125937059989004,0.009036998859443555,0.030831652781777616,-0.006743640019971343,0.025713677112075055,0.002737925829243218,0.11532702220167632,0.010193843230803735,-0.018608880712900067,0.0182661368411751,-0.010354059696226397,-0.05291579143915337,-0.008871445966897071,-0.03826379089057209,0.06503218323689773,-0.019151803603041757,-0.04401624025926855,-0.020598038608839617,0.0549719546147651,0.04804662532504996,0.06719720238174062,-0.009550789503624911,0.002032473955608653,0.033492208233039285,-0.0628695417182017,0.05324569912564251,0.06466158110317086,0.020970189930197815,-0.09666726337043248,0.008490195641341479,-0.0516978704754736,-0.006569947474299431,0.024991948948137128,0.10914641421456302,-0.06355363498539167,0.05882485652977741,-0.005568942785629271,-0.008071758716211817,-0.009417844753144253,-0.026433215159494088,-0.014227678644777388,0.018017590289304795,-0.07129450514512375,-0.0708594229123611,0.03558326518524753,-0.060551328028659285,-0.08971297342586781,0.048606276640859605,0.013698177071856367,-0.10632782829628176,0.035194156617197464,-0.001514524333586599,-0.003284936024666071,-0.010610022841610223,-0.026353644208784097,-0.0756555182447809,0.006917807405184778,-0.008448940804665697,0.012945650233465797,-0.06885090703880026,-0.01282493638582312,0.03620416582690009,-0.04714547933787471,0.04165291274994665,-0.05630506546420454,0.006535473747742799,-0.05616517690430344,-0.0424117201954821,0.04934250937231119,0.0002782908897474485,-0.06576264617783395,0.0007804542877428323,-0.017453343600832304,0.05303934358091256,-0.04258394001519607,-0.03761616460226988,0.040558008488680415,-0.015852873973244943,0.04338369049682073,-0.038307809372870774,0.03195641782757293,-0.00019853418620736224,-0.04181547994384756,-0.027570351051252263,0.047757896025647256,-0.030180422673836575,-0.019098716778121888,-0.033220129850543,0.033745386845985235,-0.02914234790381103,0.021620469317530307,-0.002993040475354859,-0.004306910603886914,0.05252393178344085,0.018238923290511508,-0.0505983228913245,0.023705198793838048,0.07577292350424274,0.0014736021541189217,0.03111441553456347,-0.012417652509290868,-0.05776897103883481,-0.023670317123087183,0.0004221553678146815,-0.02416520591767781,-0.029677172684166905,-0.009372403123451053,0.01654082334451182,0.060842899450099366,0.03948324200214154,0.038052927911825477,0.014108309859468487,0.04813818069335009,-0.02441899069401087,0.020808310411613996,-0.037474272736876896,-0.06004071322609525,0.032662071026840024,-0.008540109905698163,-0.12289480293569909,0.003627159525091088,0.03431694435142312,-0.04679603276998805,0.012600288742191802,-0.03407080776795511,0.012607637601113338,-0.00274275178984415,-0.10109467088687876,-0.00479177571567921,0.02555864238974216,0.03155090680285233,-0.039512967276967036,0.03892612199885759,-0.04773379112888146,-0.03777726056631625,-0.07283576105900756,0.04208798547499858,-0.026195316784423644,-0.003131513332842386,-0.02120362215380533,-0.02147289297128728,-0.06498069916066307,-0.010129669220282668,0.038033452783854504,-0.005085518261350343,-0.020403551664959857,-0.05177625357356287,-0.0291603351576675,0.035294007514233935,-0.054377693053421355,0.011043501763162851,0.013304223698515132,0.011834432199962955,0.02468077462042661,0.06144857444676882,-0.0069509478840081036,-0.014208774295169773,-0.005519393089432412,-0.018743923608559275,0.0035282198330921213,-0.03417057605121021,0.028826778469174617,0.054483401958304235,-0.013987177966055604,-0.023332861050734788,-0.014384739638733353,-0.05148028038713433,-0.04441060647409025,0.04024766099598391,0.020434658589868544,-0.03212184470666024,-0.07758028871063832,0.024630638023590817,-0.048726046105757745,0.006032505758370981,0.07985060653076315,0.0020415866602216193,0.016866603296872947,0.07147056943475565,0.01182418661535112,0.018729739573343347,-0.03622004529237187,-0.008059876189195648,-0.00014636026636699606,0.028454044031684722,0.013684267399755617,-0.012746680717399417,0.0018882857708049112,-0.05493729370408263,0.020009022705029966,-0.050213347633426234,-0.020157150030705038,-0.055311095074545985,0.027012058064298357,0.013411562931035188,0.016160956066286085,-0.005456387724283943,-0.02270143088776757,-0.03594066677474095,0.02833773728847372,-0.04600819354680914,-0.11331143629439558,0.029632066033192135,-0.01269836530772469,-0.046539446669959295,-0.039600703127405074,-0.02231484971130182,0.03993500698064517,0.04060571387440634,0.023710993913428118,0.05994155566703202,0.05409081460922181,-0.08355746279384375,0.026962505697472064,-0.041500160948598826,0.05526550865362406,0.0006430966353780671,0.021306736511105456,0.01008664695702226,0.027661954151728785,0.08311226783885473,-0.019474197643928454,0.01845719356300516,0.054391452689897965,-0.006115817264380924,-0.02012449042630069,0.006798234676506495,0.014243834945741392,0.013357109546783085,0.027838602195878727,0.018680474301986386,-0.038735844415354846,-0.046708348432525824,0.028407716679578754,0.04328540743726782,-0.022115873850309144,-0.03604906356520794,-0.025413516329231417,-0.02239256662799831,-0.01677705278881294,-0.04813641776722311,-0.02808171168011942,-0.0443166915179659,-0.05970362736522693,-0.03638514735850824,-0.012625067535442827,0.02394570507826864,0.002181791920050441,0.017601017716527563,0.0032437402837267003,0.08425851686888738,-0.00603766293552204,-0.01691088659088983,-0.05346186556742909,0.019029366189163472,-0.0403277179130176,-0.02849027109106599,0.039392669458533605,-0.024188651309162333,0.029427812064949856,0.05460656107101938,-0.04224216304237367,-0.001151987515719353,-0.02992073491541959,-0.018980641354980943,-0.023360852867482285,-0.03506254709717968,-0.005359797012511573,0.0007030638974681383,-0.006093460236658965,-0.05158155952470586,0.03167184276205448,0.007239262146689015,-0.003995825997744788,0.04558433020675273,0.012692398973392381,0.04127113999962988,0.028034226588366434,-0.00888464239045704,-0.04218542664832515,-0.035293951425799136,-0.009173719667769722,-0.013814508776230949,-0.0438299186964249,0.012964734389111002,0.061972571292086796,-0.019226950824753272,0.03785439390418035,0.05836532638520117,0.0228791390103789,0.04639874746261275,-0.002812894467373599,0.0313486937657627,-0.04867871016344801,-0.07671660406441266,-0.028148255985457477,0.004871424517440527,-0.023003205638472232,-0.08879834736668175,-0.07027316315816913,0.0277985042963572,0.06478227354913275,-0.04479913918985788,-0.062344644579290356,0.026625909861371734,-0.09537302949130397,-0.007135585992017663,-0.07217362291089954,0.0309010502021888,-0.04440357441971946,-0.014851124981416029,-0.00045293809211537604,0.02799076885176355,-0.04389762462891212,0.014608463214438512,-0.0653041045652005,0.009671125838998623,0.05527584321815711,0.02699751891222959,0.00445187797640552,-0.00559217003875512,-0.05425868137108917,-0.04070049482661186,0.003998944935553823]]"), X: 0.6, Y: 0.7, W: 0.2, H: 0.05, Size: 160, Score: 50, }, "1000003-5": Marker{ MarkerUID: "ms6sg6b1wowuy333", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("unknown").ID, SubjUID: "", SubjSrc: SrcAuto, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "Corn McCornface", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.10546875,\"y\":-0.045898438,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp46_v\",\"x\":0.11328125,\"y\":0.0126953125,\"h\":0.034179688,\"w\":0.045572918},{\"name\":\"lp44\",\"x\":-0.053385418,\"y\":-0.0546875,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp44_v\",\"x\":0.09375,\"y\":-0.0078125,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp42\",\"x\":-0.015625,\"y\":-0.030273438,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp42_v\",\"x\":0.0546875,\"y\":-0.0087890625,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp38\",\"x\":-0.033854168,\"y\":-0.0087890625,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp38_v\",\"x\":0.037760418,\"y\":0.01171875,\"h\":0.032226562,\"w\":0.04296875},{\"name\":\"lp312\",\"x\":-0.091145836,\"y\":-0.02734375,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp312_v\",\"x\":0.08984375,\"y\":0.021484375,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"mouth_lp93\",\"x\":-0.026041666,\"y\":0.07714844,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"mouth_lp84\",\"x\":-0.102864586,\"y\":0.08496094,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"mouth_lp82\",\"x\":-0.05859375,\"y\":0.12109375,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"mouth_lp81\",\"x\":-0.045572918,\"y\":0.10058594,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"lp84\",\"x\":-0.0065104165,\"y\":0.1171875,\"h\":0.033203125,\"w\":0.044270832},{\"name\":\"eye_l\",\"x\":-0.059895832,\"y\":-0.015625,\"h\":0.022460938,\"w\":0.029947916},{\"name\":\"eye_r\",\"x\":0.059895832,\"y\":0.015625,\"h\":0.022460938,\"w\":0.029947916}]"), EmbeddingsJSON: []byte("[[-0.01391313475,-0.031814132,0.017377053075,-0.01851261325,0.021255451499999998,-0.051055306,0.0366150855,0.007998470175,0.0695672645,-0.1067636275,0.0307072165,0.02941578425,0.054768010500000006,0.041151049,-0.06493903375,0.0015896528499999996,-0.05437162425,0.011924136,-0.025054364,0.0009921848250000003,0.012807875,-0.01319641825,-0.00488935855,-0.07366566999999999,-0.0611034065,-0.06666547924999999,-0.04888238425,-0.035091203,-0.01854779615,-0.024557007999999998,0.0030882324,-0.055875238499999993,-0.0246700375,-0.02172630285,-0.025565405,0.058197003,0.0547107775,0.047857131,-0.04580487,-0.00021249714999999926,0.009770386499999999,0.044646309999999995,0.0018705221250000003,0.0371642205,0.018666550325,-0.0032051121500000002,0.0057689690000000005,0.06864431525,-0.04906746575,-0.07431345875,-0.0647896445,0.0120775261,-0.02890944,0.01879340475,0.024201165499999996,0.04355076025,-0.014099167999999999,0.026033113750000003,0.025052837749999998,-0.068487575,0.022659832499999998,-0.0027816580000000002,0.03500908899999999,0.012073708,0.006179701499999999,0.034802054,-0.01799351825,0.0457090165,0.0036213202500000002,-0.008580024424999999,-0.072938294,-0.016224131250000003,0.06459961750000001,-0.04963675325,0.08387918625,-0.13179572750000002,-0.011209804,0.011490459325,-0.04273579375,-0.0603162555,-0.03941750125,0.061718414,0.029566903,0.011713920749999999,-0.07820421,0.042141458,0.04053815075,-0.0431640475,-0.009912542250000001,0.0083520422,0.04968228825,0.061740414,-0.003251780325,-0.0009849047250000001,-0.07888640699999999,0.00013775579999999977,0.0545293975,0.0314430285,-0.025010752249999997,-0.0754261725,0.00026732155,-0.04167998875,-0.038423044,-0.012128476325,-0.042172063999999995,-0.03992470075,0.055492729500000004,0.005174035799999999,-0.0491557875,0.047224008,0.027870127375,0.11123915125,-0.0017566490000000008,0.06637293625,0.08444959,-0.038633152000000004,0.040549324,0.0181765085,-0.0103707255,-0.052444608749999996,-0.0721162075,0.0017395296250000006,0.03576854825,-0.0010544938500000002,-0.03536455575,0.026296009000000002,-0.011038092,0.009561795625000001,0.0061376165,0.016413343999999996,-0.0007041408250000004,0.008430746000000001,0.007772767000000001,0.035255850500000005,0.03609753,-0.004700959499999999,-0.0244996355,0.029143511,0.0019076424499999993,-0.02425797625,-0.02824462725,0.03748850525,0.004536174249999999,0.094921252,0.0402888305,-0.035919796500000004,0.0325914395,0.028936399249999998,0.0100435923175,0.051378176750000004,0.0466342265,-0.104555035,-0.058734387250000006,-0.053190730000000006,-0.004201957500000001,-0.0030598753299999996,-0.009583216875000002,-0.05078611825,-0.037133980925000004,0.0406709395,0.01118452775,-0.028617762,-0.006732865225,-0.03122189575,-0.054440001749999994,0.055957135,-0.054629830500000004,0.00548484575,0.0018623927500000005,-0.0054835023,0.04359883825,-0.04169836625,0.025491153,0.035283773500000004,0.020951236874999998,0.017083047,0.011288541499999999,0.029325848999999998,0.031001949125000004,0.04632318125,0.058114136999999996,-0.018353527600000002,0.0010329377499999999,-0.05167622725,0.0015087445249999999,0.0665028595,-0.017552406,0.0030785925075000006,0.067237884,-0.045436311,0.022067097,-0.068492519,-0.09581154575,0.02946200275,0.019267693750000002,-0.013623341,-0.0023418241499999996,0.057798097500000006,-0.02830513875,0.00967313775,-0.0156008155,-0.038696254,-0.046455728749999994,-0.020938623415,0.00489014375,0.0191956194,0.01110382618,0.020775547499999998,0.116135215,-0.040037983750000006,0.039333228250000005,0.011678268775,0.0650113585,0.0023590035,-0.05381264350000001,-0.008376887255000002,-0.05688126,0.01151456675,0.00003846570000000035,-0.01287236325,-0.06661450099999999,-0.03827642075,-0.045446761,-0.03154112575,0.028140978,0.070225409,-0.020004859,0.0193362475,-0.0034820117499999997,-0.074293175,-0.04876132,0.0074359382499999994,0.0066796961250000005,-0.011634815875,0.009048144557499999,0.0344562235,-0.01762691475,0.019571052749999998,0.026697968750000002,0.015484052000000002,0.03876590725,0.0037216567,0.04729691375,0.008930467375,-0.07800198875,-0.043134631,0.0424968855,-0.0057933688750000005,-0.075971065,-0.005398360425,0.01736323075,-0.03068225125,-0.0700152155,0.012127145199999998,0.052686005499999994,0.00609444565,-0.05195201175,-0.01496918725,0.032330921,-0.0251999175,-0.0317094965,0.0063436068250000005,-0.046775514000000004,0.024125194250000002,-0.025942028000000002,0.0683850275,0.048410787250000004,-0.020441745875,0.0014374775000000001,-0.007761475925,-0.003657494249999999,-0.01002698675,-0.0033783719824999996,-0.01613361275,0.054106417000000004,-0.0499455445,0.07898722825,-0.014621054499999998,0.08328554125,-0.02660218675,0.0029891759249999995,-0.010516797999999999,0.03557642825,-0.060217531,0.0171425431,0.03266155825,-0.0598199765,0.021716342,0.0851276085,0.06803951925,0.02062912125,-0.008283969975,-0.032307963655,0.0506742335,0.020532822,0.0360789155,-0.0006283978250000003,-0.02785933975,-0.0030728417500000002,-0.034540906499999996,-0.0300205485,0.1115321695,0.053453546000000005,0.0703359815,0.010377180074999999,0.036756731075,-0.00297751195,-0.077184735,0.0264304635,0.0481822745,0.073460445,0.06669125100000001,0.09291405250000001,0.05010346175,0.029880568250000003,-0.034649416,0.029474834999999998,0.031317542500000004,-0.02699742575,0.0557845065,-0.05035647375,-0.0022147215,0.0213037777,0.07004532675,0.0264894885,-0.04297427725,0.07081584375,-0.00481877925,0.0048342215,-0.02130823725,-0.025961382749999998,-0.06262777725,0.034384046749999994,-0.0190645906,-0.031134641674999998,-0.068910896,0.06261982975,-0.0260708335,0.09122910349999999,-0.03100116965,0.049027657,-0.01474484825,-0.03469707425,-0.006989758326499999,-0.056124094,0.009483469874999999,-0.04452728725,-0.011856436750000001,-0.02315196925,-0.0312197325,0.04668023435,-0.013576097,0.12342725624999999,0.009619299000000001,-0.03253524225,0.00691780145,-0.007575374,0.017970803,0.039913282575,0.01719394935,-0.034085923000000004,0.0160938888,0.047048848750000004,0.05772991225,0.03188324875,0.005430960675,-0.015838408499999998,-0.020243144275,0.017690586,-0.038486903249999996,-0.0037113453749999994,-0.05992632025,-0.0066788766,-0.009260173449999999,-0.043526957500000005,0.035566587250000004,0.0520154155,-0.03742566475,-0.012924420124999999,0.05485878925,0.017260086875,-0.00945986855,0.06038467375,0.028211044,0.01180591125,0.076735146,0.010415625750000001,-0.026288575499999998,0.03359009575,-0.029869059499999996,0.018123453499999997,-0.039763396500000006,0.013718122,0.015185622250000001,-0.021508391,0.0933689765,0.0861815165,0.01772232125,-0.03339793175,-0.018280382249999998,0.024922235325,-0.00670621405,-0.004941027,-0.0030330302750000006,0.049037655,0.0407625665,-0.098270484,-0.010615769,0.014149342125,0.0732888865,0.01031384975,0.0708132685,-0.0248589595,0.01914073765,0.023424223175,0.0017784540000000003,-0.0016458964999999989,0.034801676250000003,0.0007287893750000003,-0.00010908749999999942,-0.10601041950000001,0.035614491750000005,0.0023196674499999996,-0.07413317850000001,-0.03187354875,0.0022230885000000004,-0.022146297500000002,-0.0020944157250000002,-0.053558506000000006,0.005407627825000001,-0.00868874405,0.049080156750000006,-0.015095300350000002,0.050741894499999995,-0.0644765125,0.049679071875,0.011181570100000001,0.08374534125,0.047086234500000004,0.04629623975,0.07211018675,0.01747124065,0.03838733075,-0.02483115725,0.059315212,-0.007435562849999999,-0.033800771,-0.062262683750000006,0.018508591749999997,0.05456382,-0.032214809750000004,-0.0060910296,-0.0688426575,0.028439918925000002,-0.050798488,-0.032318176500000004,0.0070076956499999996,-0.0850821425,0.0116441195,-0.06209254825,0.0392326955,-0.038714852,0.042342809,-0.07345825249999999,-0.0783221335,-0.00245315065,0.0052674726500000005,0.06709293425,-0.033900455,0.059125045,-0.0089869296,0.03726652275,0.036819674749999996,-0.066015052,0.0090962235,-0.0532330595,-0.0423983279,0.054948274,-0.0021313933875,-0.036738087749999995,-0.061552870499999995,0.01083386435,-0.000004987750000000173,0.03250943875,-0.00265433175,0.023262875250000002,0.04094322,-0.0458693885,0.004981979125000001,-0.01146187345,-0.017557853249999998,-0.02698673775,-0.02743749775,0.015717598925,0.00637069715,0.0225431645,-0.024064882425,0.07339412125,0.031813663,0.04107066175,-0.0605346105,0.005952673775,-0.06258660275,-0.0320774,-0.049892332,0.024880522500000002,0.0639617125,-0.0702298615,0.017941317249999998,-0.005220711350000001,0.014933126924999998,0.0115449712]]"), X: 0.2, Y: 0.3, W: 0.1, H: 0.1, Size: 200, Score: 50, }, "1000003-6": Marker{ MarkerUID: "ms6sg6b1wowuy444", FileUID: "fs6sg6bw45bn0004", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("john-doe").ID, FaceDist: 0.2, SubjSrc: SrcAuto, SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.08359375,\"y\":-0.027083334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp46_v\",\"x\":0.08671875,\"y\":-0.009375,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp44\",\"x\":-0.0546875,\"y\":-0.048958335,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp44_v\",\"x\":0.06328125,\"y\":-0.033333335,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp42\",\"x\":-0.021875,\"y\":-0.03125,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp42_v\",\"x\":0.03203125,\"y\":-0.025,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp38\",\"x\":-0.0265625,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp38_v\",\"x\":0.03125,\"y\":0.0052083335,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp312\",\"x\":-0.06796875,\"y\":-0.008333334,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"lp312_v\",\"x\":0.06953125,\"y\":0.008333334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"mouth_lp93\",\"x\":-0.00703125,\"y\":0.09375,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"mouth_lp84\",\"x\":-0.04921875,\"y\":0.128125,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"mouth_lp82\",\"x\":-0.01328125,\"y\":0.16145833,\"h\":0.045833334,\"w\":0.034375},{\"name\":\"mouth_lp81\",\"x\":-0.0078125,\"y\":0.13333334,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"lp84\",\"x\":0.034375,\"y\":0.14479166,\"h\":0.044791665,\"w\":0.03359375},{\"name\":\"eye_l\",\"x\":-0.0484375,\"y\":-0.004166667,\"h\":0.030208332,\"w\":0.02265625},{\"name\":\"eye_r\",\"x\":0.0484375,\"y\":0.0052083335,\"h\":0.030208332,\"w\":0.02265625}]"), EmbeddingsJSON: []byte("[[-0.015105677000169373,-0.0005582744874266051,0.0480268501406662,-0.03601115760977173,0.0005837739331054689,0.014168089953522492,-0.03945336629091645,-0.02582770810183487,0.020898761370506287,0.049166841007919314,0.021960500727076723,-0.019064476425213243,0.02198730232398834,0.0006670523258575441,0.03028046368291855,0.00649638007861023,-0.01584042613295212,0.00530397326763153,-0.06404373233350608,0.03889477750802231,-0.0365899261901268,0.0360787547656456,0.07579429823342132,0.039115246617597965,-0.0777424514863777,0.035950400633987425,-0.01904672616637268,0.031240118709612276,-0.01142303718094612,0.021169409966093445,-0.04066713893357315,0.048964979162612915,-0.016256413336937715,-0.02378354035888214,-0.020449917192553707,-0.02040227800516968,0.06541690078029251,0.016761249534914705,0.03380005035063598,-0.10038679582336427,0.043679719882033535,0.03128701222455444,0.012390233834701538,0.05524386205410767,0.021537026348385238,-0.016655772903281404,0.007295974349593354,-0.000005785312992858532,-0.047790829845092773,0.017440576051146697,-0.06534523391118621,0.06609203363401413,0.03238222320728302,0.006614993631034087,-0.054927458582173155,0.030833110256991578,-0.0056855157837505345,-0.007370784518985901,0.0013351148462055202,0.047366844577483365,0.04135019693103943,-0.02510304556774292,-0.05305447016115189,-0.03180977055114746,0.012452435193779296,-0.031038226814250947,-0.06159064720963287,0.057565623878417974,0.006987256155133055,0.10980759767712402,0.0014624758511650082,0.04941792959784012,0.02249399537556839,-0.007318808567618561,0.011643714617645264,-0.033996864613095854,-0.10756568994960479,-0.008790611639031982,-0.06265860528228379,-0.03834362793397904,-0.007061803256170654,-0.02360514984864273,-0.030340688408576965,-0.006711280069554138,-0.026063804222563172,-0.06257436487065124,-0.03489222804085922,0.023775160926244356,-0.05953325934691238,-0.0015599671627334586,0.04257923482005539,-0.02072714042014847,0.042186514202873227,0.03334131403590164,-0.04231802868860626,-0.03938228046069336,0.04991599600813751,0.005012853217630309,0.02852926982268677,-0.04592934168044281,-0.0446876756071167,0.05780069138760376,-0.06523845092017364,0.03691154157677917,0.0048527119732078555,-0.008498008999919891,-0.06625776342607116,0.013960302090915604,-0.029253019821994783,0.02477269871644745,0.010155390116101837,0.03100301871340158,-0.07413353268207168,0.01750142506529999,0.03461705135130691,0.04982243958808899,0.00851692480498886,-0.002991416728403473,0.01759018484255066,-0.07281463888115311,0.07669263036101531,0.0287119138326683,-0.0011225693401481635,-0.022214332482351686,0.08318748801869094,0.06656315672954559,0.0034995880579914086,0.04958693578422928,-0.027691547638692474,-0.03405751975708465,-0.062014044191894525,-0.0004367024225837711,0.007944679561768342,0.03339219333856888,-0.04039564807562256,-0.06730881179145813,-0.07099339792601776,-0.033052287483390806,-0.050682249608245855,0.011561693050074387,-0.09867453691846315,-0.02774825273226944,0.010811723733195496,0.02427582366474533,-0.02078586645137596,0.01433492286357048,0.026900254564299775,-0.05306856266233825,-0.007102414552368164,-0.02275204349867813,-0.03211197205357055,-0.014967170406674196,0.022953155306690905,-0.03644228327174301,0.012341418549354555,0.020687427985451052,-0.09076456366364288,0.031082595049208066,0.04102866745965958,-0.02306090883122635,0.027812227150472258,-0.013119295590370941,-0.004158771480469893,-0.007025444076653517,0.009275999232177735,-0.039368103392872236,0.01910143328294525,-0.05630273885418091,0.055353015055413055,-0.0014070097039474495,0.042947509516956334,0.0024906970417621615,-0.03561797166536834,0.006505803784743882,0.006665486497595978,-0.006378142944042969,0.05448368035679932,0.07332471840206146,-0.0014946864171386718,-0.008414893981474686,-0.00006825545633163364,0.02668107540572357,-0.024539537215417483,-0.07293688736830901,0.06344162595002364,-0.033607367797969814,-0.01986442914540863,0.026089177944317626,-0.022147074482840423,-0.08048881567908478,0.050637503425783534,-0.06346700348937226,-0.015700777833213043,-0.04264569287159348,-0.002655311902906036,-0.03654008229608307,-0.007810925734401397,-0.0435794361814415,-0.011699671276438905,0.057055175916534424,0.04544679800120926,0.037604382557088464,-0.02941164037058258,-0.05797836845658112,-0.06812897444572831,0.08032934278161621,-0.01328043643980198,-0.08971531949739076,0.0065821178142807,0.008762343139662933,0.020370728524544524,0.03974483299145508,-0.0051898651247510525,-0.0031604766306224056,0.07640609197084428,0.038082580676622776,0.05806105880397415,-0.014124205852999725,0.007738546446239335,-0.04230980231715012,-0.01059650656994934,0.010447661136037827,-0.04688999712561989,-0.06730292583744431,0.016754640387374113,-0.011607031355502319,0.023310211609113313,0.08731236136631013,0.05903231309516144,0.04731763803346557,-0.02573253768891525,-0.06296218933005523,0.04012439522837066,0.025853857002137298,0.007843758596900636,0.046765933136711124,-0.0018710897452026364,-0.005570995783544921,0.0005954957864215851,0.029306860778232576,0.03074633266388397,0.02318916068950821,-0.011157762649505614,-0.013694216304312515,0.015094815793841173,-0.008802384161989595,0.032486344160458376,0.05804673958212662,-0.006112833595197296,0.006215988022933197,0.04096582699106979,-0.03384389014125061,-0.01596561475662651,-0.010684742677253074,0.07758476984541932,-0.005856569876429291,0.024524756417617796,-0.007312638971189117,-0.017082938609609223,0.0011795664558563231,0.0134139216274601,-0.09028529851032258,-0.039419858379217534,0.022968888672964094,0.004521465961741944,-0.06451345260910797,-0.04178954661956787,-0.024166587057536396,0.012531514465320588,0.02323170220531845,0.04000117979464722,0.03214717679358063,0.056948825253341676,0.05539476134574128,0.013257249967432405,-0.0001733097061775205,-0.01234630922813568,0.0645579352090454,0.029838023576596068,-0.06455350567951279,-0.013353814450276946,0.0018903859134303275,0.0483956355803524,-0.004311148732519531,-0.014597871326852417,-0.006853384533165969,0.04057120248826332,0.007104495398272705,-0.027431613068233492,-0.09228961372112274,-0.06612821609320907,0.0607875549739154,-0.026342729023012542,0.06454961398086471,0.004993419094538574,-0.031680751000938416,0.007030828889411162,-0.010022039687029268,-0.05428986021428299,0.017565788880432403,0.04025441392524147,0.009023673541622163,0.009042981797892759,0.019972970522025298,0.058956133531005865,-0.008320068883990478,0.02986469039841843,-0.053139615835475926,-0.024647880182499998,0.007398424838289642,0.09050773480216218,-0.015264475845877838,-0.06385353173209762,0.016500261584825135,0.02948610469222336,-0.02504260549529915,-0.018835162326039122,0.050848700451684575,-0.03199441179409637,-0.019780421813622284,-0.027626615849293518,-0.03419102001171112,-0.014344497819357758,0.07330804638220215,-0.02937739203966522,-0.00813064343063736,-0.01626787766690979,-0.011862281442715148,0.01708495452203865,-0.07908452169694902,0.023940025203119657,-0.13222904368403626,0.048117978374713134,-0.017696039928765107,0.004759198936071777,0.01974903359319687,0.010760925580199815,-0.005599215416766357,0.0457550643199234,-0.01929695170711136,-0.007629453917987061,-0.010118543879554747,0.015504727550686645,0.03245994598398285,0.05049195915774918,-0.06673184178328552,-0.01761782965561676,0.008011984665633392,0.023189021348875426,0.06720727829968262,0.010742643820915984,-0.03080342023261017,-0.050128828091691585,0.04935064662135315,0.012293871085033494,0.05639020959568253,-0.02957390940026932,-0.03676535286145477,-0.004796114565882111,0.05806600428461456,0.018004375270679475,-0.020827009949742126,-0.0336628292589238,-0.0018759192028083797,-0.06518067211773682,-0.02731396445179306,-0.03430377823384857,0.016512887052202073,0.061277289867412564,-0.019134398406000827,0.05822277240970993,0.044241398569797516,-0.005043084829421997,-0.04018607674626312,0.06927013858769607,-0.004344519528141023,0.012868128092136383,-0.08525498011501847,0.03454513801989975,-0.024010073233037568,0.02195751011467056,-0.006334513400955963,0.06579357440817261,-0.009711559918811036,-0.013345796425511931,0.014702989589321902,0.025344240384365696,0.021528159041582107,0.062108358473124695,-0.05624000855096435,0.05573243638398361,0.006079895555899353,-0.002001432319259644,-0.002443507762801743,-0.010721616536909867,-0.04295436979775849,0.08180931740979766,-0.014715828856610106,-0.03683209432014542,-0.012104101579055901,0.013437134275827486,0.06964065576705855,0.06482510509484864,-0.03570993432865906,-0.05314338450149346,-0.11395284172808075,0.01426200422902832,0.012089334595506287,-0.058501489031186675,0.060430661880981444,0.0500264671381279,0.056157483018959044,-0.05001220665976715,0.07527209592948914,0.031277665487422945,-0.02043782967053299,-0.08342602471109009,-0.0008383195362091063,0.045666852330976865,-0.05341016683117676,-0.0003998352299102786,-0.03577085955021919,-0.038460902215493774,-0.01896648460201416,0.012595410857717131,-0.0060184891112971504,0.019921306564183502,-0.060824947492757256,-0.08852370824755859,0.003392263133862915,0.0036400299628715506,0.03255903972799225,-0.008351102953604507,0.01567778415994263,-0.00023129789984893678,-0.023584983993255156,0.06815277690185165,0.032341226983652875,0.0026074800379161833,-0.0395687710902481,-0.003838149411266327,0.04100280903240967,-0.019130064566046143,-0.07410366493117905,-0.07626375565908813,-0.014898051247527312,-0.02028174410337219,-0.0413983021689148,0.05420100971967316,0.02752598950049637,-0.024227222049773407,0.01466367372080475,0.013159825923877717,0.03946128732824249,0.02427177671503067,0.03591388100347939,-0.003222521540391235,0.0183274046263958,-0.03000545738402557,-0.04066711644104462,0.017155749921449585,-0.06134375247813416,-0.036362408407546995,-0.019471377535612868,0.034648935124684144,0.01776573165824356,-0.005382945029614257,-0.034531315796222685,-0.004955845186902466,-0.023998231859699858,0.03130629873801392,-0.012495260702575683,-0.031263154234012984,-0.063910194205719,0.01745994660978073,0.038960702542871095,0.04021203330704117,0.023016385340854643,-0.0403753269719162,-0.018214478771432493,0.009230925650691108,0.031802766191501616,-0.0060094809595568855,-0.05665428473038101,-0.0026934481642271802,-0.01278887994417572,0.013757778161637,-0.06991252187433472,0.025432326767399597,-0.05928275511783676,-0.0071204498857164004,0.009102611771803285,-0.048021745720825196,-0.04234071017774048,0.0378105065918541,-0.0030949641070522308,-0.0802945368397522,-0.029345935146197513,-0.055173430818717964,0.035613126717409516,-0.07929294203311157,0.011167600883222962,-0.010140670248493196,0.018876611506684494,0.038331590555036925,-0.021097202962330627,-0.02206313974373703,-0.0409461827742096,0.07130217153391571,0.06408282878469848,0.005774317041436768,-0.07263691064697265]]"), X: 0.494531, Y: 0.282292, W: 0.285937, H: 0.38125, Size: 200, Score: 100, }, "ma-ba-1": Marker{ MarkerUID: "ms6sg6b1wowuy555", FileUID: "fs6sg6bqhhinlple", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("fa-gr").ID, FaceDist: 0.5, SubjSrc: "", SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", EmbeddingsJSON: []byte("[[-0.072142504,0.042257983,0.052759748,0.0013519295,0.047474314,0.013890485,-0.0101158675,-0.04595832,0.09635148,0.048310738,0.06103825,0.040138435,0.049146496,-0.007248736,0.004368155,0.008675123,-0.042142674,-0.04474999,-0.02047639,0.022352137,-0.067407444,-0.03157175,0.048805416,0.021838054,-0.044695962,0.0685471,-0.008910802,-0.01793957,0.0033625022,0.0019502316,-0.036237836,0.015395115,-0.049661785,-0.058531173,-0.02776332,-0.0032393914,0.0986681,-0.054832466,0.018980134,-0.03851389,0.053241864,-0.015806986,-0.04193845,0.031221129,0.019176105,0.011330498,0.017154546,0.02969384,0.014814939,-0.05246724,-0.03785157,-0.028708491,-0.09044295,-0.009864502,-0.02901912,0.016612405,-0.036076095,-0.0539092,-0.04383653,0.044117514,0.007808266,-0.004581591,-0.0514201,0.035549052,-0.027806975,-0.020888407,-0.06917216,0.007323796,-0.020771176,0.027214328,0.07905205,0.030122623,0.045344252,0.027033372,-0.02054183,-0.01684333,-0.047652125,0.0005995308,-0.029103162,-0.009733045,0.062223505,-0.0015163408,-0.024336698,0.01978162,0.012692482,-0.018910756,-0.012763021,0.024916025,0.056155477,0.01871617,0.026163457,0.051118918,0.01801808,0.074066944,-0.008888246,0.006928741,-0.02687047,0.05188839,-0.0033747158,-0.02929846,-0.028971521,0.0049656206,-0.045891214,0.026578758,-0.020418812,-0.018325623,-0.0434573,0.0032855717,-0.0028597312,0.004814863,0.05696523,0.012545018,-0.065763384,0.11980642,0.049446754,0.05029431,-0.0042775245,0.008624839,0.025512578,-0.01719362,0.10957161,-0.026287358,0.054676928,-0.07486487,0.06810067,-0.054471407,-0.032047126,0.045834243,-0.05465876,-0.018601527,-0.0036667932,-0.017722705,-0.010312282,0.03885071,-0.059362315,-0.00063267065,-0.06682454,-0.052967217,-0.05929715,0.04824387,-0.07536426,0.006604882,-0.0050493744,0.05820217,0.009919643,-0.03342405,0.024723982,0.06475988,0.019987889,-0.08175332,-0.013165036,0.061590355,0.076896004,0.01620906,0.0077700764,0.022119034,-0.023565786,-0.010973665,-0.0015099146,-0.020700675,0.06757858,0.02940673,-0.03010736,-0.051828504,0.023004565,-0.0764375,0.045848884,-0.008168051,0.03720667,0.03742765,-0.012184919,-0.014343166,-0.033353887,0.012456909,0.0041439063,-0.017652376,0.039964538,-0.001829935,0.039240062,0.00786061,0.015750261,0.028798966,-0.043741293,-0.017780207,-0.02142656,-0.051598515,-0.014717175,0.006735082,-0.03259476,-0.043476783,-0.027040798,-0.000691029,0.010500889,-0.06707513,0.03523055,-0.089982666,0.05226954,-0.06786617,0.08040933,0.025014801,0.0073502637,-0.08731204,-0.008699364,0.019148637,-0.03936927,0.08518026,0.05358711,-0.03518155,0.07247729,-0.008949057,-0.048042793,-0.002956328,-0.03300062,-0.046939105,0.0915438,-0.05464515,-0.04610935,0.07127091,0.007621828,-0.031085983,-0.025606984,0.01039779,0.03398814,-0.09856501,0.013363713,0.028234292,-0.011486632,0.079888135,0.029839091,0.029553404,-0.050492574,-0.04817146,-0.006858615,0.07498894,-0.032609336,0.06756467,-0.032564655,0.002785598,-0.07588032,0.08438152,-0.0037011756,0.08572283,0.026608022,0.045887344,0.00543944,-0.01571601,-0.03444191,0.017759465,0.0076248716,0.019511135,0.054000214,-0.015688794,0.03491226,0.03905039,0.00024197447,0.012036192,-0.030561563,0.031869154,0.010466791,0.010722873,-0.013295381,-0.019655699,-0.04215597,-0.021002663,0.02318168,0.025815804,0.043421254,-0.010191429,-0.017436516,-0.0046900203,0.005002936,-0.060441058,0.04797864,0.04550805,0.030396245,0.0052805073,-0.008270568,0.069369145,0.04742276,-0.018503346,-0.051401395,0.08547959,0.009523754,0.031529754,-0.02760639,-0.009993019,0.003623189,0.06276683,0.03847906,-0.062453788,0.007334646,0.0040390785,-0.07179362,0.061636757,-0.027028032,0.01247216,0.055676848,-0.015349415,-0.059516247,0.025994545,-0.041879427,0.03558314,-0.0241659,0.022267837,-0.009047332,-0.041234937,-0.02513069,-0.010995759,-0.04037109,-0.04466701,0.08812898,-0.036827512,0.003799781,0.0028043406,0.023853403,-0.028637394,0.056346137,0.026028965,-0.022524662,0.0065875337,-0.017639149,0.029036753,-0.0063203447,0.08527095,0.0015235926,-0.02498966,0.10012716,0.06935013,0.026015304,-0.043830205,0.06557063,-0.10377028,0.046071567,0.01003569,0.019008288,-0.043041904,0.03718328,0.036918674,0.07994266,0.010322254,0.047674898,-0.050617076,0.007636946,0.004962731,0.06260609,-0.06551635,-0.030735409,-0.006536016,-0.018503005,0.053473014,0.067416765,-0.014920551,-0.0795489,0.050882783,-0.023549065,0.061480075,0.005564089,-0.024420023,0.053142656,-0.0014567364,0.041943617,-0.014825347,0.013772298,0.008825656,0.0032292008,-0.0513367,-0.0000073542933,-0.006272137,0.0020179776,0.04550081,0.048047163,-0.048785023,0.027769877,-0.026604231,0.09655442,0.020041144,0.093483314,-0.038392454,0.037734374,0.010461282,0.005320446,-0.009273237,0.04774857,0.037994493,-0.02951807,-0.023445696,-0.094865836,0.052474927,0.016890824,-0.04860911,0.04710994,-0.053250875,-0.029450882,-0.06780781,0.034927316,-0.0362428,0.07793684,-0.068913765,-0.09204061,0.0030703396,-0.06272431,0.0030928643,0.027104517,0.038663708,-0.03412214,-0.023408087,0.06214825,0.0549512,0.044333354,0.048367012,0.059929077,0.017031213,0.016220586,0.007840412,0.031772316,0.046120483,-0.06944252,0.056481063,-0.036635406,0.0043835356,-0.0070592896,-0.022794766,-0.021008922,-0.04326046,-0.04566396,0.08033236,-0.064153984,-0.07217075,-0.02853428,-0.025879152,0.07259135,0.08062619,0.044983383,0.13481961,-0.072409675,-0.015797945,-0.017076237,-0.0041956115,-0.051841028,0.04799229,-0.0049867216,0.06601267,-0.05019356,-0.034404904,-0.08368694,0.022506097,-0.05850538,-0.075852625,0.061109148,0.02263125,-0.030542765,-0.04556355,0.020782068,0.032853283,0.0030401854,0.078425385,-0.01896143,-0.0023838342,-0.042703945,-0.058023743,0.04179414,-0.09767693,-0.033666488,-0.04263288,-0.020931192,-0.034820415,-0.03931357,-0.0034258547,-0.024843648,-0.04067552,-0.007151303,-0.022570277,-0.0072967215,-0.06908364,0.06672831,0.07256033,0.030993296,0.04368551,-0.035560947,0.027666396,0.061756603,0.062125534,-0.06878583,0.017702859,-0.021018988,0.0059774504,-0.02926182,-0.029620321,0.019162185,-0.03426479,-0.040945068,0.009822987,-0.074607246,-0.039720256,0.037226316,-0.033395942,-0.14967993,-0.039942257,-0.05353808,-0.026832417,-0.025908556,-0.0077865333,-0.021976901,-0.044485416,0.028727682,-0.02618011,-0.06279341,-0.03068858,0.09271847,-0.042424254,0.072334215,0.029337408]]"), LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.0375,\"y\":-0.0011723329,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp46_v\",\"x\":0.034375,\"y\":-0.017584994,\"h\":0.022274327,\"w\":0.01484375},{\"name\":\"lp44\",\"x\":-0.02421875,\"y\":-0.009378663,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp44_v\",\"x\":0.02421875,\"y\":-0.021101993,\"h\":0.022274327,\"w\":0.01484375},{\"name\":\"lp42\",\"x\":-0.01015625,\"y\":-0.010550996,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp42_v\",\"x\":0.01328125,\"y\":-0.015240328,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp38\",\"x\":-0.0109375,\"y\":0.0035169988,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp38_v\",\"x\":0.01484375,\"y\":-0.0023446658,\"h\":0.022274327,\"w\":0.01484375},{\"name\":\"lp312\",\"x\":-0.0296875,\"y\":0.00820633,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp312_v\",\"x\":0.03203125,\"y\":-0.0070339977,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"mouth_lp93\",\"x\":0.009375,\"y\":0.030480657,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"mouth_lp84\",\"x\":-0.0140625,\"y\":0.05627198,\"h\":0.022274327,\"w\":0.01484375},{\"name\":\"mouth_lp82\",\"x\":0.00859375,\"y\":0.06799531,\"h\":0.022274327,\"w\":0.01484375},{\"name\":\"mouth_lp81\",\"x\":0.00703125,\"y\":0.049237985,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"lp84\",\"x\":0.025,\"y\":0.046893317,\"h\":0.023446659,\"w\":0.015625},{\"name\":\"eye_l\",\"x\":-0.021875,\"y\":0.0058616647,\"h\":0.012895662,\"w\":0.00859375},{\"name\":\"eye_r\",\"x\":0.021875,\"y\":-0.0058616647,\"h\":0.012895662,\"w\":0.00859375}]"), X: 0.321875, Y: 0.681125, W: 0.113281, H: 0.169988, Size: 240, Score: 243, }, "fa-gr-1": Marker{ MarkerUID: "ms6sg6b1wowuy666", FileUID: "fs6sg6bqhhinlple", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("fa-gr").ID, FaceDist: 0.6, SubjSrc: SrcAuto, SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.06875,\"y\":-0.03165299,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp46_v\",\"x\":0.07421875,\"y\":-0.0070339977,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"lp44\",\"x\":-0.05,\"y\":-0.042203985,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp44_v\",\"x\":0.0484375,\"y\":-0.025791325,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp42\",\"x\":-0.02421875,\"y\":-0.02813599,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"lp42_v\",\"x\":0.0171875,\"y\":-0.023446659,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp38\",\"x\":-0.02578125,\"y\":-0.0035169988,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"lp38_v\",\"x\":0.0234375,\"y\":0.0058616647,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp312\",\"x\":-0.059375,\"y\":-0.009378663,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp312_v\",\"x\":0.059375,\"y\":0.014067995,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"mouth_lp93\",\"x\":-0.01953125,\"y\":0.06565064,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"mouth_lp84\",\"x\":-0.04453125,\"y\":0.0996483,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"mouth_lp82\",\"x\":-0.01484375,\"y\":0.13950762,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"mouth_lp81\",\"x\":-0.0140625,\"y\":0.0996483,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"lp84\",\"x\":0.03046875,\"y\":0.116060965,\"h\":0.04337632,\"w\":0.02890625},{\"name\":\"eye_l\",\"x\":-0.040625,\"y\":-0.00820633,\"h\":0.02813599,\"w\":0.01875},{\"name\":\"eye_r\",\"x\":0.040625,\"y\":0.00820633,\"h\":0.02813599,\"w\":0.01875}]"), EmbeddingsJSON: []byte("[[-0.093890525,0.013019683,0.029119994,0.016538357,0.08429999,-0.013141796,0.026667582,-0.032405175,0.1163595,0.06623811,0.088007785,0.009521102,0.015391135,-0.02106023,-0.05691315,0.006022611,-0.058659475,-0.00011029375,-0.06971113,0.05432662,-0.04409823,-0.003976013,0.027959235,-0.034681886,-0.14300948,0.051087014,0.0054640174,-0.007197454,-0.06455456,-0.009305863,0.0044053295,0.06462282,-0.032358933,-0.030238362,-0.020493884,-0.010359775,0.09324912,-0.039328303,-0.016501626,-0.014710057,0.031304553,-0.015599755,0.008533751,0.07130624,0.03166603,-0.023390792,0.023942959,0.059524164,-0.041601457,-0.06416116,-0.041546755,-0.03334894,0.0011531865,0.040073637,-0.018780045,0.022695273,-0.049491756,-0.0414258,-0.029182525,0.017479239,0.01928343,-0.01614069,-0.035605017,0.0027880555,-0.054131843,-0.013329343,-0.070483185,0.02762893,-0.003757605,0.024029065,0.048910603,-0.0626271,0.058255084,-0.015169776,-0.036532834,-0.0143178,-0.027101258,-0.0018407565,-0.04690811,-0.04956762,0.010914193,0.07442895,-0.0043541566,0.022665054,-0.03303305,0.0067597367,-0.0010624131,-0.037461307,0.042763997,-0.027515907,-0.0216556,0.088641025,0.02317886,0.051990937,0.014210248,0.053770877,-0.030388424,0.03557687,-0.008867339,-0.025271282,-0.035980903,0.060673732,-0.04643693,0.020850485,-0.014614189,-0.0020573318,-0.03538145,-0.012771079,-0.04042637,-0.007547424,0.05608984,0.0492629,-0.08212422,0.082140565,0.04542818,0.067287564,0.013836702,0.06768826,0.009714602,-0.054550506,0.06386987,-0.04616299,0.05996367,-0.01937157,0.013215866,-0.054378405,-0.06256393,0.03748458,-0.024062924,-0.026881605,-0.041843604,-0.014912192,0.0146123925,0.0011209485,-0.004296436,-0.0003058275,-0.08093204,-0.10672516,-0.050903864,0.06546454,-0.058595892,-0.0016667336,-0.06931831,0.08064343,-0.031922415,0.01231072,0.007076793,0.050815802,0.0068850033,-0.00010835264,0.0022294046,0.045028266,0.005166697,-0.0045967908,0.014069159,0.03347971,-0.05768536,0.006957895,-0.014871252,-0.044262763,0.061014812,0.0544672,-0.019617066,-0.036315948,0.003572591,-0.08375262,0.003292174,-0.0033475982,0.0729587,0.031858016,0.0050936467,-0.0040652733,-0.0713299,0.04836243,-0.0036649564,0.042359013,0.005535485,0.04166388,0.032519743,-0.037563425,-0.006787622,0.0975232,-0.028610859,-0.05551449,-0.010158359,-0.009648773,-0.020920375,0.020818578,0.01934051,-0.045618217,0.03399537,-0.017113084,-0.009698096,-0.028860886,0.05349579,-0.06723021,0.021912385,-0.0062027103,0.040623836,0.003028591,0.013819611,-0.0741912,0.0043623582,-0.009456924,-0.014306789,0.10665826,0.076034434,-0.027082609,0.06206736,-0.020236213,0.012652845,-0.0039251493,-0.000280856,-0.008572471,0.045621246,-0.03227069,-0.054804426,0.07252653,-0.026879575,-0.043832645,0.017214196,0.005076746,0.08040599,-0.034220904,0.03484136,0.02382526,0.026718752,0.07254515,0.012495314,0.05978514,-0.04628429,-0.024638008,-0.02576567,0.065158054,-0.047027167,0.06418812,-0.081913896,-0.005787421,-0.051078312,0.06797664,0.0017024332,0.07742271,0.010700663,0.03209516,-0.018604087,-0.045509182,-0.008061004,0.023344489,0.01904618,0.041710503,-0.013524363,-0.017318565,0.03588442,-0.0032547913,0.03166146,-0.0043413923,-0.04080873,0.01681051,-0.019007234,-0.013555998,0.032053225,-0.010219326,-0.01866457,0.032395568,-0.0249728,0.0009942359,0.026133865,-0.033865724,0.007027051,-0.04793034,-0.010599442,-0.07745055,0.027022012,0.04158849,0.06573968,0.035531525,0.021987008,0.071070544,0.016728004,-0.0081183035,-0.044853006,0.12151895,0.021718577,0.012723086,-0.06188408,0.012176856,0.036947895,0.057829987,0.01700913,-0.028672377,-0.004252188,0.050896477,-0.061259568,0.046805445,0.0021330062,0.012728627,0.074729234,-0.05108558,-0.026853746,-0.002554891,-0.06541287,0.112090945,-0.04314722,-0.0022233592,-0.006430751,0.015083513,-0.03100459,-0.025453275,-0.042763796,-0.016535807,0.09097279,-0.015041015,0.008733814,-0.04123596,0.024532927,0.011715153,0.06335838,0.0761839,0.08011235,-0.0124487905,-0.037226275,0.0334534,0.047131944,0.08725385,0.051174667,-0.029137474,0.08769971,0.07836939,0.02610011,-0.039806835,0.045638703,-0.060002267,0.04121661,0.03920101,0.012287198,-0.01547638,0.07394301,-0.00089664565,0.054021467,-0.06347721,0.039498687,-0.051903382,0.046906985,-0.032213062,0.03028559,-0.06520618,-0.06003844,0.03062223,-0.036353577,0.024346597,0.02822717,0.018156389,-0.05536987,-0.0031256478,0.017493388,0.02408711,0.010129664,-0.025654754,0.046199925,0.016645173,0.04554169,0.03513556,0.007711406,-0.014392482,0.026389861,-0.05045308,-0.05110089,0.050693404,0.03977609,-0.05128192,0.053380627,-0.023048688,0.017495167,0.00570053,-0.015025937,0.055640794,0.06637663,0.005713842,0.03303093,-0.052888278,0.008493651,-0.009745264,0.071294084,-0.032945618,-0.07234138,-0.0022275746,-0.0336476,-0.0042378865,-0.0054431246,-0.06818403,0.058113907,-0.0406194,-0.02389134,-0.056073356,0.040728915,-0.021555515,0.034714483,-0.019794995,-0.015178331,-0.041329168,-0.03407714,-0.028579155,-0.005672207,0.029484289,0.027802806,0.026038399,0.019196397,0.024043009,0.0765798,0.039046213,0.046637107,0.05134362,0.03244927,-0.03884527,-0.0023525245,0.092064194,-0.08074449,-0.014464295,-0.04845734,0.025665468,0.05623905,-0.045274533,-0.0149016585,-0.033310723,-0.056783903,0.057339143,-0.03954092,-0.053069092,-0.018684955,0.0025479551,-0.028144034,0.02014774,0.039332718,0.073072225,-0.01614404,-0.059333786,-0.02467569,-0.004339183,-0.036381695,0.024719657,-0.06873327,0.04614165,-0.066158466,0.00818247,-0.07389401,0.0339478,-0.057359412,-0.07036976,0.058156338,-0.01655164,-0.036509078,-0.011072368,-0.027338926,0.020310968,-0.05036326,0.08261217,-0.09883814,-0.017118959,-0.022017892,-0.04725586,0.09792606,-0.026525073,-0.016586661,-0.033620592,-0.057665624,-0.00007511597,-0.016471397,-0.019783584,-0.06353213,-0.039600156,-0.009202849,-0.006073607,-0.061406936,-0.040955253,0.031354766,0.113885455,0.019598747,0.10061418,-0.02584035,-0.04032387,0.040245105,0.017961819,-0.10025504,-0.004328129,-0.03746717,-0.0042175096,-0.05155416,-0.03192004,-0.02692704,-0.0862173,-0.0039579575,0.0018015363,-0.053296138,-0.027453119,0.033717077,-0.03140269,-0.102326795,-0.050540317,-0.025906341,-0.0069560385,-0.07068475,-0.015721673,-0.014287674,-0.027509414,0.052948955,-0.006745669,-0.023102764,-0.056568827,0.08737429,-0.024211287,0.0350071,0.05126876]]"), X: 0.419531, Y: 0.271981, W: 0.234375, H: 0.3517, Size: 200, Score: 107, }, "fa-gr-2": Marker{ MarkerUID: "ms6sg6b1wowuy777", FileUID: "fs6sg6bw15bnlqdw", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("fa-gr").ID, FaceDist: 0.6, SubjSrc: SrcAuto, SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.071875,\"y\":0.011723329,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp46_v\",\"x\":0.06484375,\"y\":-0.050410315,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp44\",\"x\":-0.05,\"y\":-0.01641266,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp44_v\",\"x\":0.0421875,\"y\":-0.05627198,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp42\",\"x\":-0.02109375,\"y\":-0.021101993,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp42_v\",\"x\":0.01953125,\"y\":-0.037514653,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp38\",\"x\":-0.01953125,\"y\":0.0070339977,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp38_v\",\"x\":0.0265625,\"y\":-0.011723329,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp312\",\"x\":-0.0546875,\"y\":0.023446659,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"lp312_v\",\"x\":0.05859375,\"y\":-0.026963657,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"mouth_lp93\",\"x\":0.01875,\"y\":0.050410315,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"mouth_lp84\",\"x\":-0.015625,\"y\":0.110199295,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"mouth_lp82\",\"x\":0.02578125,\"y\":0.13012895,\"h\":0.042203985,\"w\":0.028125},{\"name\":\"mouth_lp81\",\"x\":0.02265625,\"y\":0.085580304,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"lp84\",\"x\":0.06015625,\"y\":0.07854631,\"h\":0.04103165,\"w\":0.02734375},{\"name\":\"eye_l\",\"x\":-0.03828125,\"y\":0.01641266,\"h\":0.025791325,\"w\":0.0171875},{\"name\":\"eye_r\",\"x\":0.03828125,\"y\":-0.015240328,\"h\":0.025791325,\"w\":0.0171875}]"), EmbeddingsJSON: []byte("[[-0.054372232,0.039181765,0.031498026,0.00006468251,0.085923195,0.040548585,0.0026052466,-0.039414298,0.05933827,0.023663318,0.09894146,0.024789661,0.08381449,-0.0009519701,0.0040236413,0.0063722683,-0.015737116,-0.014617461,-0.019540241,-0.029962234,-0.048536565,-0.031511437,0.05904624,0.020316958,-0.045277163,0.041760866,-0.037910704,-0.033220347,-0.039845977,0.015874833,-0.034371693,0.012605717,-0.04929036,-0.07819874,0.012040551,0.015452551,0.0965687,-0.054449324,-0.023628006,-0.0565004,0.013442125,-0.038254976,-0.04326975,0.02118397,0.029084323,0.008579383,0.045229904,0.013055096,0.027759727,-0.08371116,-0.060050268,-0.08331734,-0.05214239,0.008944725,-0.019383246,0.0114573315,-0.02055765,-0.03746207,-0.032432828,0.04650022,0.01978044,-0.02538733,-0.045202617,0.029577369,-0.04724416,-0.024435386,-0.027689831,0.013018789,0.013810588,0.051173527,0.066237815,-0.0067154826,0.06873531,-0.0012610955,-0.030723115,-0.04996191,-0.0461783,0.006001794,0.02660609,0.025235772,0.029364051,0.026858289,-0.014544781,0.05740735,-0.017979944,-0.024380311,-0.008692474,0.046802167,0.09299754,-0.019755812,-0.0126305455,0.12018655,-0.0064901947,0.08189685,0.057631522,-0.009468592,-0.049890127,0.050696388,-0.027362281,-0.015018735,-0.04897983,0.026270924,-0.03838939,0.03760829,-0.010569597,-0.010435291,-0.035543915,-0.022772964,-0.021342857,0.003510175,0.009439534,0.031752486,-0.06917819,0.072512254,-0.0014846651,-0.0015212417,0.037430547,0.03241541,-0.008109822,-0.026197173,0.070364155,-0.050799396,0.026972353,-0.049946975,0.04730336,0.015160451,-0.055826616,0.059438467,0.005612464,-0.020598605,0.01042563,-0.0029619534,0.010778734,0.03363065,-0.0036426373,0.033659644,-0.07173102,-0.0080144415,-0.051456682,0.05256069,-0.0861279,-0.010783685,-0.035283152,0.005497062,-0.016684314,-0.01255608,-0.029156175,0.003832838,0.09207083,-0.0214934,0.020649372,0.020402648,0.05635924,0.028637772,0.0018554999,-0.001275046,-0.020943288,-0.041492745,-0.005098246,-0.018425088,-0.005902142,-0.007795507,-0.012569249,-0.015090472,-0.027261628,-0.13381328,0.04913353,0.02731762,0.06516422,0.027890263,0.0066199233,-0.008120477,-0.07240938,0.0370237,-0.047250558,0.03305488,0.0430215,0.054351024,0.07672866,-0.008972388,-0.012583,0.049263064,-0.05263908,0.0039483933,-0.022206614,-0.01810628,0.010214823,0.05440527,-0.036172938,-0.040891606,-0.008949698,-0.038943082,0.00466301,-0.034757555,0.021446096,-0.060837414,0.025626894,-0.05464466,0.04462554,0.030822191,0.022864016,-0.052686494,0.006518084,0.04935852,-0.03714159,0.1178143,0.032482903,-0.019864004,0.06589123,-0.049268965,-0.059515666,-0.028111672,-0.052309103,0.011847165,0.042358596,-0.025433987,-0.050082915,0.06639749,0.016851338,-0.020532604,-0.035726458,0.03455427,0.026566518,-0.043824315,0.047387224,0.046129033,-0.040084973,0.09086816,0.0004362527,0.056333754,-0.060923584,-0.02898282,-0.014046263,0.0627209,-0.002816037,0.013264778,-0.062054787,0.0020665412,-0.011042119,0.038150266,-0.02750016,0.08713206,0.06669175,0.0013982811,0.033410408,-0.061703518,-0.02782464,0.005495053,0.06658737,0.052047268,0.05121723,-0.04058631,-0.026755987,-0.0034220277,0.0028000916,-0.009886429,0.027694378,0.06148172,-0.008622199,-0.04840991,-0.0033856523,-0.0024832839,-0.0033750134,-0.0061055967,0.042073004,-0.026305163,0.047061037,0.0054187095,0.027180143,-0.003373134,-0.028141763,-0.10518332,0.07093758,0.052337892,-0.03512264,-0.018175403,0.01909021,0.049865156,0.02743289,-0.057926476,-0.016333507,0.13824615,-0.0001683252,0.029309746,-0.01965205,0.01826987,-0.0331428,0.018002786,0.03134565,-0.052589804,0.0020567186,0.0013509697,-0.030760918,0.03340601,-0.000057938956,0.0054554744,0.1057856,-0.014039021,-0.044674277,-0.0200911,-0.025374383,0.05266827,-0.016330028,0.00034745375,-0.026274374,0.0054015843,-0.03838495,-0.06392363,-0.042491183,0.004125134,0.074691035,-0.01815788,0.040734135,-0.011939831,0.036953893,-0.0007105282,0.039958067,0.06914358,0.00037906168,-0.014675732,-0.010838799,0.023180598,0.00043795368,0.048800938,0.060397744,-0.009255526,0.08779608,0.10212225,0.06821088,-0.0394667,0.09377539,-0.031714007,0.033195127,-0.017779903,0.0023073403,-0.07820316,0.040017802,0.02774755,0.042927817,0.0012552411,0.06857897,-0.03835711,0.0026496598,-0.013230098,0.027798751,-0.003158967,-0.04901588,-0.0035741555,-0.040651176,-0.007911339,0.07734485,-0.0071988828,-0.08224695,-0.0066104825,0.010763355,0.046783995,0.02597116,0.011201962,0.07557952,-0.07148059,0.021003358,0.017351674,-0.008934093,-0.019112961,0.005029582,-0.09219211,-0.004865103,-0.021242056,-0.03580161,0.03312631,0.015365677,-0.05330894,0.021684073,-0.04610137,0.08155228,0.04728531,0.106373265,0.007509471,-0.010395734,-0.0067949416,0.0016888204,-0.050826676,0.036792357,0.028567528,-0.03769767,-0.014327214,-0.114597246,0.022002887,0.024608398,-0.038854193,0.026020525,-0.046852514,-0.014258566,-0.040672284,0.049628362,-0.0014845175,0.058704358,-0.061757382,-0.08047245,0.055392664,-0.11757615,0.014209077,0.013425823,0.032652758,0.035792053,0.019583482,0.072709315,0.03331942,0.049472883,0.0527305,0.066966735,0.054501895,0.007113472,0.005025461,0.043384537,0.07707812,-0.037694816,0.051992904,-0.021244418,0.026791634,-0.00018824296,-0.09608466,-0.057391673,-0.019557308,-0.045710195,0.11256869,-0.03630969,-0.04346037,-0.03198605,-0.004994154,0.04439497,0.07715531,0.023426961,0.119786546,-0.018045835,-0.018545102,-0.024001092,-0.0058640875,-0.031129215,0.0296328,0.01102629,0.023001922,-0.020752085,-0.008979548,-0.04888688,0.053155813,-0.08248362,-0.034407604,0.063852735,0.010307777,-0.022234993,-0.019875037,0.017233202,0.009299421,-0.010353768,0.06795645,-0.08111678,0.031468038,-0.04074988,-0.065950215,0.002381992,-0.077574216,-0.0638125,-0.015096647,-0.036802486,-0.06519387,-0.061357055,0.0021515447,-0.035495274,-0.046395093,-0.024219131,-0.04006479,-0.015802946,-0.046073157,0.044999864,0.044493504,0.0050695804,0.047709156,-0.06679927,0.009656656,0.008440564,0.041205402,-0.055090237,-0.05124349,-0.070530914,-0.004065805,-0.03881908,-0.04284163,0.013091091,-0.07438322,-0.051147584,-0.004689705,-0.1168612,-0.034551486,0.008786282,-0.05222254,-0.09804541,0.023659328,-0.055399828,0.014005115,-0.00795563,-0.030266479,0.019792065,-0.060083665,0.032388374,-0.0030213597,-0.031277124,-0.030778551,0.07044338,-0.014993716,0.027770035,0.03445111]]"), X: 0.404687, Y: 0.249707, W: 0.214062, H: 0.321219, Size: 200, Score: 74, }, "fa-gr-3": Marker{ MarkerUID: "ms6sg6b1wowuy888", FileUID: "fs6sg6bw45bnlqdw", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("fa-gr").ID, FaceDist: 0.6, SubjSrc: SrcAuto, SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.1265625,\"y\":-0.037514653,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"lp46_v\",\"x\":0.12421875,\"y\":-0.049237985,\"h\":0.080890976,\"w\":0.05390625},{\"name\":\"lp44\",\"x\":-0.0921875,\"y\":-0.06799531,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp44_v\",\"x\":0.09375,\"y\":-0.07620164,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp42\",\"x\":-0.0453125,\"y\":-0.055099647,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp42_v\",\"x\":0.03671875,\"y\":-0.058616646,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp38\",\"x\":-0.04765625,\"y\":-0.0011723329,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp38_v\",\"x\":0.046875,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp312\",\"x\":-0.11328125,\"y\":0.0011723329,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"lp312_v\",\"x\":0.1171875,\"y\":0.0011723329,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"mouth_lp93\",\"x\":-0.00234375,\"y\":0.110199295,\"h\":0.07854631,\"w\":0.05234375},{\"name\":\"mouth_lp84\",\"x\":-0.075,\"y\":0.1852286,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"mouth_lp82\",\"x\":-0.00859375,\"y\":0.2602579,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"mouth_lp81\",\"x\":-0.00625,\"y\":0.17233294,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"lp84\",\"x\":0.078125,\"y\":0.19109027,\"h\":0.07971864,\"w\":0.053125},{\"name\":\"eye_l\",\"x\":-0.075,\"h\":0.044548653,\"w\":0.0296875},{\"name\":\"eye_r\",\"x\":0.075,\"h\":0.044548653,\"w\":0.0296875}]"), EmbeddingsJSON: []byte("[[-0.073866636,0.016031327,0.023936775,-0.0053662593,0.07237993,0.04055533,-0.010006854,-0.08853087,0.07773273,0.035573997,0.064981356,0.0020537896,-0.001027068,-0.010934273,-0.003104742,0.010902052,-0.027014393,-0.013686293,-0.009875583,0.015303323,-0.018991778,-0.02323984,0.030534267,-0.0033639274,-0.10288412,0.0717939,-0.0012669773,0.014334076,-0.039688457,0.017188145,-0.015910042,0.055143923,-0.032555833,-0.03506173,-0.068201624,-0.0039704936,0.08928039,-0.026942518,0.011039717,-0.03735661,-0.0014198971,-0.018449597,-0.06112747,0.04157763,0.07383509,-0.04355786,0.021221923,0.018865572,-0.0039059212,-0.047053855,-0.058129553,-0.038542587,-0.023257237,-0.004728452,-0.028359955,0.0039047676,-0.02627191,-0.022284606,0.007962644,0.06321306,0.03732979,-0.04749387,-0.017337998,0.0030111885,-0.028933149,-0.008887208,-0.06071306,0.03869208,-0.09708857,0.04828468,0.020269504,-0.04063692,0.10137754,0.016340563,-0.0015734726,-0.024068983,-0.025025863,0.04832914,-0.021582557,-0.032818828,0.00018090609,0.029158695,-0.0018422881,0.030217623,-0.0011723741,-0.082951054,-0.03300287,0.030488258,0.025993546,-0.022730732,0.011654745,0.061848763,0.012047269,0.093638696,0.0060161697,0.0047047674,0.005296799,0.06932509,0.016032169,-0.013620633,-0.006022576,0.016952122,-0.066751,-0.016939523,0.006578483,-0.026227117,-0.04812863,0.004717689,-0.0065265307,-0.01629887,0.06322119,0.027887775,-0.066761896,0.08686458,0.07942802,0.08388473,-0.00282358,-0.00541744,0.0708098,-0.014398607,0.08771786,-0.033847287,0.05162851,-0.01365062,0.048112284,-0.05715766,-0.046271008,0.056179672,0.003435988,-0.011598098,-0.029404357,-0.01584704,0.011094245,0.03757599,-0.05238623,0.013646733,-0.02461669,-0.048051346,-0.075406104,-0.0020483842,-0.055833645,-0.014297428,-0.072286725,0.045308035,0.0071518556,-0.045322344,0.006272015,0.008873406,0.01909099,-0.0178786,-0.061731715,0.09681949,0.04529445,-0.039505653,0.048396572,0.029071784,-0.0508098,-0.020671528,0.024967367,-0.050586604,0.017834423,0.019237572,0.009593093,-0.041558046,-0.0003789351,-0.10507235,0.062877074,0.0340332,0.052963976,0.038017586,0.044870827,-0.023327185,-0.027447775,0.018722018,-0.01495255,0.010285529,0.006699261,0.019871375,0.04677616,-0.008053924,0.035305478,0.06910859,-0.058397174,-0.04997201,-0.024150014,-0.047944978,-0.04850946,0.027666207,-0.015385359,-0.026231881,-0.029543651,-0.068578035,0.010962724,-0.012112321,0.041190933,-0.06982521,0.022845706,0.010630225,0.039679203,0.0120911375,0.020542646,-0.086290255,-0.0032323631,0.042691592,-0.04808516,0.054902866,0.084107324,-0.08121146,0.07269181,-0.023218282,0.0085940035,-0.014477415,-0.016376667,0.013630227,0.099591576,-0.017152792,-0.022023872,0.06504699,0.03383892,-0.07171765,0.0018146061,0.025729213,0.055387046,-0.07977077,0.046015475,-0.018759467,0.000032393746,0.09278185,0.015648605,0.073056385,-0.055384524,-0.02845897,-0.027267037,0.09475982,-0.0020406358,0.03758793,-0.054485165,-0.03265821,-0.05159487,0.022056432,-0.011478735,0.06693947,0.04921809,0.014617242,0.0317674,-0.021935562,-0.029373636,-0.024497539,0.04018448,0.028116653,0.017569298,-0.020693202,0.0058392626,-0.033240892,0.005981258,-0.03692178,-0.041199494,0.022738375,0.019006865,-0.040770877,-0.04819203,-0.00074032525,-0.050814908,0.028583968,0.015760805,-0.0131536415,0.06355032,-0.062454503,-0.021504251,-0.03322951,0.015921598,-0.038808152,0.0053016073,0.047145087,0.012950561,-0.005165289,0.021696176,0.1006171,0.00011339755,-0.03743969,-0.0032795696,0.1151706,0.044503003,0.038610794,-0.007968872,0.035065427,0.021606348,0.0051747584,0.022587998,-0.06580073,-0.007051277,0.039693505,-0.06831048,0.033305947,-0.02417094,0.011260378,0.106488094,0.0018363984,-0.019961357,0.015139018,-0.016302284,0.07338007,-0.08660587,0.050163887,-0.06515454,0.04420773,-0.04620322,-0.0016479344,-0.019523032,-0.0046600383,0.051558446,-0.039630923,0.0206993,-0.030601852,-0.01398122,0.000068459005,0.07366608,-0.00028727754,0.044792995,-0.0041720183,-0.023572491,0.03447365,-0.036157113,0.02819346,0.0493312,-0.044256706,0.09224052,0.06909898,0.013466474,-0.04111229,0.059525512,-0.05140521,0.061477825,0.0017825632,-0.029221864,-0.05507708,0.006438174,-0.014033246,0.05725492,-0.056060065,0.024903009,-0.024683116,0.039777134,0.012582429,0.055130392,-0.030750046,-0.059396066,-0.035579916,-0.029797664,0.004726079,0.034804873,-0.034417376,-0.114758596,0.03242788,0.000501204,0.04404313,0.00655221,-0.027173482,0.040714,0.023931323,0.020616865,-0.016255263,-0.0017712632,0.0027488335,-0.014625318,-0.06243433,-0.021571135,-0.015103034,0.012897906,-0.025319636,0.049510416,0.024344563,-0.020421328,-0.009538588,0.04941297,-0.0015938922,0.078475334,-0.0018342786,0.029404538,-0.060807385,-0.015963834,-0.053491082,0.041621022,-0.004584518,-0.07120361,-0.010081799,-0.08262798,0.011636767,-0.0015379221,-0.025175184,0.05776484,-0.028748916,0.05144731,-0.07920147,0.025079658,0.013160541,0.042230397,-0.056532286,-0.021730576,-0.016290681,-0.026606148,-0.0011647565,0.0035673594,0.00085276953,0.040172685,-0.0106583405,0.018701522,0.030779626,0.054770093,0.08547839,0.10493849,0.057681084,0.012756295,-0.012550093,0.038036626,0.05472453,-0.07034408,0.008832732,-0.04203944,0.024039479,0.0022330943,-0.08002771,0.01859618,-0.07650708,-0.06871729,0.08551957,-0.045689788,-0.038133662,-0.06058958,0.02554352,0.024225824,0.031872917,-0.008533843,0.060477596,-0.013617827,-0.045547865,-0.013227217,-0.0077821882,-0.0047530667,0.03495019,0.018960906,0.06562013,-0.05885502,-0.026826475,-0.084350295,-0.006463529,-0.11407113,-0.023642823,0.07699851,-0.0007511166,0.017985942,-0.036139246,-0.08464451,0.07296712,-0.0075233886,0.07328787,-0.10081047,-0.028797977,0.01438471,-0.0034235953,0.051218707,-0.0797163,-0.05970589,-0.042747606,-0.002718021,-0.026282901,-0.018973313,0.012287243,-0.055787902,-0.01068693,-0.054766666,-0.07124911,-0.029021561,-0.05347068,0.05091528,0.06802605,0.019041106,0.02474878,-0.0030039893,-0.02026538,0.048509765,0.04026487,-0.08677108,-0.013551162,-0.04432152,-0.02753063,-0.032842644,-0.03517603,-0.0026440874,-0.04815278,0.0015537251,0.063122645,-0.06946794,-0.012093891,-0.0019356601,0.0231943,-0.12961437,-0.011635037,0.0042307056,-0.0013429738,-0.054212384,0.06293422,0.0029329862,-0.040961236,0.07530531,-0.0519733,-0.022792637,-0.096784875,0.028482867,-0.0127504375,0.06500096,0.052648548]]"), X: 0.528125, Y: 0.240328, W: 0.3625, H: 0.543962, Size: 200, Score: 56, }, "actress-a-1": Marker{ MarkerUID: "ms6sg6b1wowuy999", FileUID: "fs6sg6bqhhinlple", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818-045038063041", FaceID: FaceFixtures.Get("actress-1").ID, FaceDist: 0.26852392873736236, SubjSrc: SrcManual, SubjUID: SubjectFixtures.Get("actress-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "Actress A", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.20087977,\"y\":-0.022460938,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"lp46_v\",\"x\":0.20381232,\"y\":-0.043945312,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp44\",\"x\":-0.14516129,\"y\":-0.037109375,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp44_v\",\"x\":0.12463343,\"y\":-0.060546875,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"lp42\",\"x\":-0.07331378,\"y\":-0.0234375,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp42_v\",\"x\":0.03372434,\"y\":-0.033203125,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"lp38\",\"x\":-0.07331378,\"y\":0.01171875,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp38_v\",\"x\":0.0659824,\"y\":0.005859375,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp312\",\"x\":-0.17155425,\"y\":0.009765625,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"lp312_v\",\"x\":0.17595308,\"y\":-0.0126953125,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"mouth_lp93\",\"x\":-0.019061584,\"y\":0.107421875,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"mouth_lp84\",\"x\":-0.08797654,\"y\":0.171875,\"h\":0.056640625,\"w\":0.08504399},{\"name\":\"mouth_lp82\",\"x\":0.02346041,\"y\":0.21386719,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"mouth_lp81\",\"x\":0.004398827,\"y\":0.15527344,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"lp84\",\"x\":0.13636364,\"y\":0.16210938,\"h\":0.055664062,\"w\":0.083577715},{\"name\":\"eye_l\",\"x\":-0.1202346,\"y\":0.0068359375,\"h\":0.034179688,\"w\":0.051319648},{\"name\":\"eye_r\",\"x\":0.1202346,\"y\":-0.005859375,\"h\":0.034179688,\"w\":0.051319648}]"), EmbeddingsJSON: []byte("[[-0.05229705,0.007989598,-0.062365454,0.0061841086,0.06359905,-0.023156136,0.041654155,0.060551327,0.0080484,0.0259964,-0.017790899,0.05328648,0.008051681,0.004158141,0.01934692,0.031126099,0.037513833,0.0661351,-0.024141736,0.026394045,-0.004832717,-0.048614245,0.021577224,-0.001970885,0.0109787565,-0.06530431,-0.006030935,0.045647576,-0.0017333498,0.014349204,-0.034823675,-0.08507538,-0.06481961,-0.021696921,-0.013733632,-0.06093843,-0.0353926,-0.0816069,-0.003031482,-0.048279442,-0.007382505,0.033463806,-0.016694082,-0.006024777,0.08327889,0.09875023,-0.012484787,-0.058815323,0.032650303,-0.020854296,-0.107102804,-0.052951254,0.06643637,0.049409714,-0.051010255,-0.05989731,-0.030755803,-0.004990421,-0.012278099,-0.033928186,-0.02483369,-0.016562939,0.007251628,0.12116579,-0.030766798,-0.034330606,-0.04448809,-0.06718208,0.0010473772,0.025452167,-0.11771256,-0.073624186,0.06702661,0.001210614,-0.010433612,0.013147661,-0.017261446,-0.058957368,0.045368977,0.004058764,0.022201827,0.027560161,-0.0377051,-0.016491184,-0.015218782,0.061864156,-0.07688957,0.012870432,-0.01164755,-0.047753666,-0.004062014,0.061563116,0.043187067,-0.038274653,0.0073725,0.087547,-0.02465749,0.069889344,0.057197604,-0.0409002,-0.07738756,0.030647544,-0.045078352,0.06300527,-0.037541963,-0.078719966,-0.03773478,0.009842516,-0.016822234,0.013509771,-0.039251234,-0.0067301737,-0.016230693,-0.03264009,0.027045054,-0.056228492,-0.07922239,0.032337304,-0.07653274,-0.040859587,0.018102637,-0.017439928,0.07072474,-0.047896326,0.0892192,-0.008514806,0.035658598,-0.023070173,-0.1018028,-0.05762159,-0.056649454,-0.008618878,0.016522313,0.013173467,0.043471225,0.016440712,0.04963072,0.0025043804,-0.055007797,-0.009640878,-0.038686037,0.028938757,-0.042355012,0.080204286,0.019337134,-0.03411155,-0.02595622,0.043695416,-0.009023003,0.021960387,-0.055932842,0.047417544,0.008447756,0.060802683,0.007049994,-0.027508061,-0.0880883,-0.065615505,-0.033592727,0.019060964,0.051755343,0.0644715,0.06329444,0.047450755,-0.069210045,0.027375769,-0.050313827,0.027648222,0.040717743,0.010694129,-0.042684533,-0.0065284735,0.043558195,0.017130628,-0.05412039,0.051682115,-0.015720656,0.039207693,0.0133312885,-0.005719052,-0.03163015,-0.024424605,0.004745196,0.027041266,0.027891282,-0.09569756,0.0016817392,-0.06326212,0.08236786,-0.041220974,-0.018897083,-0.0034501683,-0.0009880171,-0.03234924,-0.0052740313,-0.03258579,0.011854238,-0.12111912,0.011765493,-0.040605187,0.07189139,0.0053031943,0.0056359037,-0.047506567,0.0061064786,0.07454735,0.0013638375,-0.03039137,0.034319416,0.041107308,0.03366933,0.12155316,-0.03444269,-0.09601736,0.020978406,0.011961241,-0.034874704,0.01691079,-0.036350977,-0.03752899,-0.019909134,0.07804831,0.02025738,0.023722788,0.07989277,0.010130817,0.094901055,0.04674442,-0.03300892,-0.010380252,-0.05247076,-0.06434577,0.08455416,0.0270006,-0.04323316,0.032972153,0.046522085,0.018313596,-0.01438891,0.08599599,0.0065270574,0.021346292,-0.025544036,0.010025259,-0.061830234,-0.022722572,-0.017789774,-0.046070516,0.0012311137,0.060397036,-0.00095879566,0.030007232,0.0373407,0.044799555,0.05593753,0.03707591,-0.029031834,0.076791845,-0.020900607,-0.015646426,-0.004163893,0.020473266,-0.02163454,-0.016153961,0.037079003,0.013442594,-0.036669753,0.011533637,-0.023773039,-0.07111306,-0.029343553,-0.0886156,0.061532106,0.01921337,0.056643642,0.0065780496,0.011087258,0.051643964,0.09629773,0.047176264,-0.03306574,0.025588147,0.007951005,0.016879337,0.010161855,0.04733144,0.06159107,0.103453875,-0.011948827,0.033104483,0.0059451926,0.0028704288,0.021986214,0.048837528,0.022196801,-0.014160903,0.02349835,-0.012660949,-0.032859556,-0.04139531,0.011255187,0.04133296,-0.004485465,0.018995635,0.04702958,0.09558477,0.03325744,-0.09686811,-0.024341797,-0.049072854,-0.026889915,0.0358518,0.008705245,0.028579423,0.011970988,0.030839734,-0.012615775,0.043476205,0.029864708,-0.03080079,-0.04061254,-0.05333887,0.052642222,0.008978231,0.00535499,-0.055364214,0.030401299,-0.041552424,-0.08917391,-0.030813953,0.013840964,0.009201573,-0.0068568857,-0.028739737,-0.034714155,0.038832456,0.054138377,0.028621657,0.028619714,-0.061658528,0.031706166,0.008527403,0.028814454,0.04848206,-0.025092026,0.0077216504,0.045992117,0.04175891,-0.04670346,0.08155426,0.047371842,0.019500673,0.03433615,-0.007175214,0.037078403,0.06326607,-0.021745648,0.021966813,0.06908443,-0.04929061,0.00973276,-0.040354956,0.0808187,0.060764935,0.059249427,0.015942117,-0.036786526,-0.0020648674,0.05868547,0.027981477,0.033442043,0.0028526292,0.081910744,-0.007579615,0.009980506,0.12620251,0.04930073,0.008065173,-0.0340071,0.03412705,0.030472064,0.021306807,0.09693716,-0.0012492486,0.0054060426,0.019264672,0.025324527,0.024840873,0.032975666,0.023894792,-0.008880753,-0.017816521,0.007425608,0.05205727,0.020813603,0.051000256,-0.0013736173,-0.018755639,-0.042811044,-0.0024803795,0.0053950306,-0.10178959,-0.006109442,-0.024801476,0.019034633,0.06860389,-0.011341898,0.050353404,-0.026785567,-0.0090696905,0.011146311,0.068339095,-0.02078327,-0.013683953,0.024704546,0.022463804,0.05390386,0.015567147,-0.017296655,0.008668451,-0.00707021,-0.016485855,0.053326797,0.0077202315,0.000105594605,0.078966126,0.012173883,-0.010164135,-0.00076907326,-0.06266574,-0.06398305,0.053533886,0.06431866,0.015442087,0.052885942,-0.011302109,-0.05066782,-0.050972108,0.020483453,-0.02153529,-0.02996298,0.0019833155,-0.034100793,0.06682743,-0.03296124,0.04058806,0.026214233,-0.039496947,0.015046788,0.022510707,-0.0023394104,-0.056726906,0.018024538,-0.012636283,-0.036644615,0.008710028,0.048582997,-0.00055643794,0.000752097,-0.072080985,-0.014192766,0.030562079,-0.055470504,-0.009195293,0.008115496,0.09196582,-0.033875756,-0.031127209,0.06039318,0.06010307,-0.052503236,0.01380666,-0.03804924,-0.017064193,0.083562344,0.078455605,-0.08022132,0.07292907,0.05657521,-0.0053966385,-0.019952502,-0.060210112,-0.04937814,-0.010188942,-0.008495002,-0.044368472,-0.023539238,-0.023852175,0.06910539,-0.021957787,-0.036084246,-0.04192943,-0.06829056,-0.00027899756,0.012719791,-0.052117694,0.008628383,-0.007880049,-0.0041414862,0.069853604,-0.0043276628,-0.021817885,-0.07530787,-0.013810588,-0.08678773,0.07755373,0.006726282,-0.0054265857,0.04703485,-0.08533555,-0.04510798,-0.02370461]]"), X: 0.458944, Y: 0.381836, W: 0.630499, H: 0.419922, Size: 430, Score: 176, }, "actress-a-2": Marker{ MarkerUID: "ms6sg6b1wowu1000", FileUID: "fs6sg6bwhhbnlqdn", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818-046045043065", FaceID: FaceFixtures.Get("actress-1").ID, FaceDist: 0.4507357278575355, SubjSrc: "", SubjUID: SubjectFixtures.Get("actress-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.1328125,\"y\":-0.050469484,\"h\":0.07981221,\"w\":0.053125},{\"name\":\"lp46_v\",\"x\":0.1359375,\"y\":-0.069248825,\"h\":0.07981221,\"w\":0.053125},{\"name\":\"lp44\",\"x\":-0.08984375,\"y\":-0.06807512,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp44_v\",\"x\":0.0953125,\"y\":-0.09389672,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp42\",\"x\":-0.03203125,\"y\":-0.049295776,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp42_v\",\"x\":0.04140625,\"y\":-0.0528169,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp38\",\"x\":-0.04296875,\"y\":0.0070422534,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp38_v\",\"x\":0.05,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp312\",\"x\":-0.1125,\"y\":0.0046948357,\"h\":0.07981221,\"w\":0.053125},{\"name\":\"lp312_v\",\"x\":0.11171875,\"y\":-0.015258216,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"mouth_lp93\",\"x\":0.021875,\"y\":0.15845071,\"h\":0.07981221,\"w\":0.053125},{\"name\":\"mouth_lp84\",\"x\":-0.06796875,\"y\":0.2511737,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"mouth_lp82\",\"x\":0.01015625,\"y\":0.29694834,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"mouth_lp81\",\"x\":0.01328125,\"y\":0.23474178,\"h\":0.08098592,\"w\":0.05390625},{\"name\":\"lp84\",\"x\":0.07578125,\"y\":0.24530517,\"h\":0.08215962,\"w\":0.0546875},{\"name\":\"eye_l\",\"x\":-0.0765625,\"y\":0.0070422534,\"h\":0.0528169,\"w\":0.03515625},{\"name\":\"eye_r\",\"x\":0.0765625,\"y\":-0.005868545,\"h\":0.0528169,\"w\":0.03515625}]"), EmbeddingsJSON: []byte("[[-0.049459063,0.017268278,-0.02436374,0.00456427,0.09272429,-0.050807584,0.036965158,0.026884563,0.0119875,0.014209214,-0.067779765,0.04646819,-0.014141333,-0.0036627771,0.021660244,0.021314034,0.014275501,0.08742305,-0.034991235,0.008202811,-0.002463041,-0.02050261,-0.013668234,-0.01591194,0.00038310073,-0.057569426,0.0017369435,0.0018577661,-0.028867407,0.0027254226,-0.005002463,-0.07488987,0.001307097,-0.04501251,-0.0029536102,-0.060898315,-0.024836477,-0.06800526,-0.018251294,-0.06714453,-0.03835583,-0.012315799,-0.02408654,-0.052206445,0.06425532,0.10974466,-0.019249128,-0.082979046,0.05063531,-0.0154190995,-0.0228068,-0.026870046,0.015838344,0.012618892,-0.07076848,-0.099307396,-0.0029199817,-0.008428616,-0.03690643,-0.029002419,-0.08289682,-0.042127404,0.022622276,0.11112179,-0.102848515,-0.051508073,-0.07759363,-0.024752662,0.01072458,0.017454943,-0.096395686,-0.060559936,0.06974608,-0.022983044,0.010305064,-0.015682958,-0.015386821,-0.06532061,0.04780671,0.030457076,0.009153081,-0.009918209,0.028085643,-0.06903502,-0.04477236,0.04568965,-0.0588692,0.008053723,0.0066500003,0.002056475,-0.051001243,0.07434756,0.06958109,-0.0051158112,0.0067235045,0.061066773,-0.02668338,0.07214043,0.029028762,-0.056457512,-0.035895966,0.06470638,-0.010451813,0.06615657,0.009132362,-0.10509057,-0.0214467,-0.019499326,0.021326417,-0.0005096953,-0.039119616,-0.004919122,-0.027968572,-0.02242942,0.04339938,-0.050613083,-0.03398977,-0.008493971,-0.041936025,-0.024089295,0.031790562,-0.020151902,0.0040771635,-0.034357667,0.09156331,-0.005507572,0.038099304,-0.026427202,-0.071385466,-0.047210604,0.015180976,0.02840854,0.006497151,-0.00033469102,0.059061587,0.01597261,0.026339632,0.0047395597,-0.0732964,-0.023477107,-0.013290841,0.0722244,-0.09215446,0.08168655,0.06149926,-0.043894358,-0.0012614318,-0.014505845,0.013292828,0.05467337,-0.07392705,0.03587918,0.03738537,0.039497815,0.014047925,-0.035231546,-0.05510579,-0.06585757,-0.027597472,0.028229747,0.01872451,0.016732052,0.038707886,0.03760357,-0.09509508,0.011902702,-0.039682817,0.063382134,0.015901549,-0.018055184,-0.017384674,-0.0055762334,0.028935213,0.04936567,-0.07914068,0.033277143,-0.04809108,-0.012982491,0.027650237,0.012381077,-0.007831506,-0.028501108,0.0027739317,0.030846888,0.06363329,-0.063592546,0.0013009127,-0.047159683,0.08388043,0.017999368,-0.030521795,0.016651977,-0.02127061,-0.0066180443,0.021815853,-0.04923658,0.014300308,-0.10884089,0.03554048,-0.076338924,0.04290125,-0.03496307,-0.016342787,0.003979376,-0.005279251,0.046642117,0.03875152,0.021821734,0.0212685,0.02517185,0.013970688,0.09438682,-0.008246351,-0.07201821,0.043268915,-0.013038975,-0.03842977,0.031770673,0.014474782,-0.00904498,-0.035458993,0.105679035,-0.005526758,0.035617128,0.087437995,-0.0074472744,0.03652849,0.03156119,-0.0074446313,0.025843417,-0.033748094,-0.07544038,0.06703343,0.058584675,-0.034583744,-0.014526141,0.010346831,0.02020119,0.017172644,0.036033068,0.017345741,-0.005148574,0.005949535,0.009638718,-0.051637497,-0.017285585,0.01982075,-0.040740706,0.024971858,0.032606248,0.0054185386,-0.034356512,0.055193033,0.0087926695,0.034704905,0.00855733,0.0038743499,0.07179773,-0.019840432,-0.032834504,0.00042203598,0.08087348,-0.025469255,0.014843097,0.09630777,0.0047693965,-0.024934268,0.012820331,0.011042015,-0.030395493,-0.033821043,-0.08145805,0.075025946,-0.03607769,0.057038724,-0.0027300948,0.054555744,0.05634548,0.09752533,0.046370883,-0.05634598,0.015927348,0.021280775,0.012376771,-0.018440763,0.03532993,0.02491145,0.052214853,0.0022429496,0.020258121,-0.039332327,-0.013443214,0.029031718,-0.02472637,0.013089783,-0.0143768415,0.034685213,-0.03686133,-0.00024506677,-0.020284498,0.009332724,0.008956202,-0.001900865,0.027391685,0.015421629,0.065207265,0.018158332,-0.11686228,-0.021487968,-0.052634593,0.00041134108,0.070758514,-0.012821131,0.0056990935,0.009860178,-0.012334778,-0.028138964,0.028736291,0.011418021,-0.024555748,0.006178947,-0.032897394,0.03567247,0.015546294,0.005205685,-0.066652454,0.03141584,-0.057265297,-0.060639385,-0.05043094,-0.012570809,0.026399242,0.039814834,-0.05367967,-0.09991194,0.029263567,0.06516923,-0.002547701,0.01744748,-0.07774265,-0.01485503,-0.0008515376,-0.00009239801,0.040131442,-0.008471036,0.046221625,0.036377743,0.03975367,-0.02172364,0.016733838,0.03406566,0.029283218,0.01903691,-0.030763604,0.05134629,0.056930035,-0.050130114,0.07097113,0.026646879,-0.06706624,0.0185106,-0.027858399,0.0919206,0.058494482,0.088975206,-0.05819871,-0.04681766,0.00006603616,0.03765832,0.036368955,0.022435583,-0.036811493,0.054468587,-0.01463473,0.008204965,0.08055711,0.025345674,0.035949606,-0.094104804,0.10039316,-0.013622636,0.025994016,0.069019005,0.0139777325,-0.0014750401,0.016625214,-0.020974183,0.011298052,0.013663046,0.049106684,-0.06313476,-0.02732274,0.007753176,0.0716419,0.03180572,0.0520323,0.008170091,0.0022347167,-0.05285675,-0.0020002343,-0.0077795237,-0.14255907,-0.039583888,-0.0060677547,0.028627384,0.035871346,-0.025141723,0.05824233,-0.07839286,0.0044170194,-0.022603396,0.03614475,-0.011268937,0.037637427,0.0025523365,0.054308962,0.03597362,0.041037004,-0.028538795,0.0022853648,-0.047099475,-0.037321594,0.048661713,-0.026266742,-0.030840356,0.08786395,-0.039021745,0.0019526927,-0.0109154405,-0.055744655,-0.086810485,0.015435788,0.04645769,0.028589347,0.041702002,-0.0064188247,-0.07415001,-0.017071126,0.025768213,-0.02186999,-0.0048967577,0.014584777,0.0061198445,0.021607645,-0.0446379,0.035067543,0.03668494,-0.071570486,0.025967104,0.0042253863,-0.039801758,-0.0140141845,0.026637642,0.0039601126,-0.06624098,0.012255538,0.027761143,-0.005409356,-0.009112263,-0.015837284,-0.03027765,0.0025985541,-0.01429484,-0.04303043,0.014554412,0.11623079,-0.059168987,-0.024508484,0.08753183,0.041292477,-0.045497976,-0.0016933419,-0.059131842,0.010029583,0.04696655,0.061362173,-0.053241152,0.022399137,0.063325584,0.03223329,-0.031676352,-0.068241775,-0.026388923,-0.038682334,0.06003698,-0.027799105,-0.006467925,-0.06406409,0.09387454,-0.020002173,-0.068420134,-0.036658607,-0.04201613,-0.0033988056,0.034520224,-0.025423609,-0.0063035307,0.027934644,0.011818505,0.08374407,0.023470499,-0.06288708,-0.038999792,-0.01913346,-0.04121274,0.12673251,0.021116056,-0.025599312,0.059204243,-0.10120517,-0.02541926,-0.036548868]]"), X: 0.464844, Y: 0.449531, W: 0.434375, H: 0.652582, Size: 556, Score: 155, }, "actress-a-3": Marker{ MarkerUID: "ms6sg6b1wowu1001", FileUID: "fs6sg6bw45bnlqdw", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818-05403304060446", FaceID: FaceFixtures.Get("actress-1").ID, FaceDist: 0.5099754448545762, SubjSrc: "", SubjUID: SubjectFixtures.Get("actress-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.12421875,\"y\":-0.05516432,\"h\":0.07629108,\"w\":0.05078125},{\"name\":\"lp46_v\",\"x\":0.11875,\"y\":-0.061032865,\"h\":0.07394366,\"w\":0.04921875},{\"name\":\"lp44\",\"x\":-0.0671875,\"y\":-0.07746479,\"h\":0.07511737,\"w\":0.05},{\"name\":\"lp44_v\",\"x\":0.09921875,\"y\":-0.08568075,\"h\":0.07511737,\"w\":0.05},{\"name\":\"lp42\",\"x\":-0.01484375,\"y\":-0.048122067,\"h\":0.07511737,\"w\":0.05},{\"name\":\"lp42_v\",\"x\":0.0546875,\"y\":-0.049295776,\"h\":0.07394366,\"w\":0.04921875},{\"name\":\"lp38\",\"x\":-0.034375,\"y\":0.01056338,\"h\":0.07511737,\"w\":0.05},{\"name\":\"lp38_v\",\"x\":0.05078125,\"y\":0.0035211267,\"h\":0.07394366,\"w\":0.04921875},{\"name\":\"lp312\",\"x\":-0.0984375,\"y\":0.0023474179,\"h\":0.07511737,\"w\":0.05},{\"name\":\"lp312_v\",\"x\":0.10078125,\"y\":-0.005868545,\"h\":0.07511737,\"w\":0.05},{\"name\":\"mouth_lp93\",\"x\":0.04765625,\"y\":0.15375587,\"h\":0.072769955,\"w\":0.0484375},{\"name\":\"mouth_lp84\",\"x\":-0.06015625,\"y\":0.25704226,\"h\":0.07511737,\"w\":0.05},{\"name\":\"mouth_lp82\",\"x\":0.009375,\"y\":0.3051643,\"h\":0.07511737,\"w\":0.05},{\"name\":\"mouth_lp81\",\"x\":0.021875,\"y\":0.2382629,\"h\":0.07394366,\"w\":0.04921875},{\"name\":\"lp84\",\"x\":0.065625,\"y\":0.26408452,\"h\":0.07511737,\"w\":0.05},{\"name\":\"eye_l\",\"x\":-0.0703125,\"y\":0.0011737089,\"h\":0.049295776,\"w\":0.0328125},{\"name\":\"eye_r\",\"x\":0.07109375,\"h\":0.048122067,\"w\":0.03203125}]"), EmbeddingsJSON: []byte("[[-0.030162131,-0.01176201,-0.014886564,0.007073464,0.11269621,-0.037331063,0.041961063,0.00563907,0.0064236526,-0.010960639,-0.0042644828,0.030771699,0.014614853,-0.0054937406,0.038051017,0.04635477,0.034364603,0.099259354,-0.004648092,0.0111822635,0.03520799,-0.03549263,0.012646834,-0.008714125,-0.017289585,-0.0675926,0.025010059,0.006254254,-0.03860531,-0.0064788107,0.0036798783,-0.07745418,-0.023225985,-0.03152003,0.021388594,-0.07726075,-0.0026089547,-0.045097895,-0.018101906,-0.09037953,-0.046974577,-0.0060178176,-0.019378802,-0.044005536,0.076491445,0.08707773,-0.010284405,-0.11935611,0.040282827,0.002283568,-0.04324527,-0.010690265,0.00821257,0.02017954,-0.07631943,-0.10987312,0.013558569,-0.022746177,-0.04028441,0.016965218,-0.040909234,-0.050942566,0.022242,0.120476194,-0.06658611,-0.043091573,-0.061836794,-0.05709718,0.021490382,0.0127024,-0.12067826,-0.072207615,0.08343471,-0.022888778,0.019897169,0.0061817374,0.0068232967,-0.061381537,0.04549849,0.024943795,-0.010488667,0.0060791434,-0.0025351476,-0.06707843,-0.018208109,0.047146965,-0.042749375,0.059901927,0.0059034643,0.0033945336,-0.07921299,0.05713912,0.04361319,0.028458657,-0.009879499,0.03140627,-0.03420856,0.06741427,0.032505736,-0.07861183,-0.06382085,0.047678914,-0.025663754,0.06887441,0.019920425,-0.10962419,-0.04204298,-0.033558466,0.016722236,0.0069335983,-0.06629326,0.0070168413,-0.05316388,-0.034083262,0.044397466,-0.057145473,-0.04868806,0.003810704,-0.03113833,0.00451248,0.033465132,-0.02550965,-0.0014888983,-0.018374179,0.083570614,0.018924896,0.02233672,-0.029520582,-0.040832445,-0.037519787,0.014580376,0.03572498,0.032270227,0.0011982368,0.07239436,0.02194068,0.009013371,-0.008845176,-0.087144405,-0.04784175,0.0037576582,0.08675284,-0.079827845,0.083858594,0.0052718134,-0.06609754,-0.017537236,0.0023137867,0.04661473,0.076047845,-0.08587876,0.03176565,0.045361705,0.040074382,0.0022822036,-0.051515233,-0.07997518,-0.048273496,0.0048421766,0.013196157,-0.001204384,0.007837211,0.0356769,0.059981547,-0.08063003,0.00008905198,-0.044701546,0.052903607,0.075195655,-0.018885499,-0.0026354361,0.00076671876,0.005910425,0.013754204,-0.09388003,0.03119816,-0.07051509,0.017419366,0.04646836,0.022504669,-0.0121046,-0.015959464,0.00077243324,0.021920238,0.042870726,-0.07402386,-0.014377326,-0.03249675,0.043629974,0.008337455,-0.04739697,0.007994139,-0.014181621,0.002159787,0.0032577785,-0.04634685,0.01633049,-0.095778786,0.039750375,-0.05830882,0.10493905,-0.03386401,-0.0011024777,0.000035083165,-0.031482525,0.08941169,-0.006559033,0.0011195478,0.007442567,0.011850524,0.014894581,0.07711941,-0.01781475,-0.07233728,0.0104106255,-0.02415632,-0.025316598,0.030230487,0.02232721,0.015015193,-0.025859257,0.09529066,0.010125857,0.045184348,0.11370714,-0.016670218,0.046251483,0.033300634,-0.027609989,0.0053348867,-0.029097768,-0.06434757,0.08473599,0.044195455,0.0017243569,0.006499155,0.022776723,0.013160947,0.030223062,0.051617682,0.023164669,0.0046141455,0.02451903,0.02003469,-0.06611676,-0.015008822,-0.009100582,-0.023646737,0.014851652,0.05118252,-0.00806539,-0.030246861,0.05131044,0.0018270313,0.016332064,-0.015110148,-0.0221731,0.07055847,-0.01610019,-0.07459282,-0.012506088,0.0392053,-0.030212378,0.040515084,0.07911197,0.013703636,-0.02601204,-0.007438952,0.013708828,-0.03800723,-0.013123793,-0.054646052,0.09945399,-0.026949355,0.056145936,0.000132012,0.012252103,0.032066572,0.048699293,0.02713033,-0.07295968,0.008908392,0.0289968,0.007670751,0.0094207395,0.030742127,0.036395837,0.030165685,0.0067158896,0.015760195,-0.020583164,-0.016060544,0.026999488,-0.0155271385,0.040173646,0.0033110501,0.033762258,-0.020186787,0.028177904,-0.054987755,0.040557962,0.046010483,0.0011205788,0.030392257,0.008612636,0.07607412,0.0008984152,-0.08356993,-0.015211418,-0.04510859,0.01222945,0.07540885,0.021029217,-0.009751237,0.03184632,0.01771495,0.009178708,0.05495884,0.025463067,-0.061587475,-0.010072273,-0.07609662,0.03149099,-0.008777812,0.013090374,-0.05082709,0.038662266,-0.022361549,-0.021717813,-0.041924257,-0.018597972,0.032336537,0.016977564,-0.038131896,-0.077193856,0.048771136,0.05553366,-0.021213856,-0.0015424791,-0.050436478,0.012934503,-0.008933084,-0.023577854,0.061587427,-0.01823785,0.059933748,0.035802152,0.040674545,-0.056200683,0.016260745,0.040546842,0.0039818278,0.04945143,-0.0018760421,0.06255753,0.084238365,-0.027262675,0.04971824,0.012032575,-0.059859876,0.003484273,-0.021963429,0.078829266,0.03816938,0.058965817,-0.049293403,-0.050726783,-0.01641507,0.04514422,0.036381047,-0.0033632722,0.012200278,0.036309812,0.0033158667,0.016262444,0.081099205,0.066613905,0.013018905,-0.09975876,0.088449836,-0.012223532,0.038857326,0.0781463,0.0018207218,0.020662569,0.028938767,-0.0030848426,0.02327823,0.031876724,0.021129506,-0.07868327,-0.009467011,0.00116268,0.065723725,0.046733923,0.05853955,0.0060063065,0.033734698,-0.077721916,-0.018714668,-0.008721541,-0.14526516,0.00048844464,-0.032561086,0.03130981,0.039426308,-0.017761374,0.051276337,-0.070010826,-0.014580368,0.026206205,0.05247335,-0.027971998,0.0450822,-0.0022506353,0.046587817,0.010188847,0.023309886,-0.0289147,0.028314758,-0.022734744,-0.04674994,0.036228098,-0.0016859015,-0.03641872,0.10718571,-0.0407207,0.0030549522,-0.013909063,-0.04348161,-0.11307476,0.026893105,0.035188023,0.034982115,0.039688844,0.0027830838,-0.04913703,-0.01759755,0.019436093,-0.020588767,-0.006698757,0.016285665,0.02749752,0.0060938844,-0.00225327,-0.009089173,0.04672811,-0.045318406,0.032092486,0.052882172,-0.035544295,-0.019481437,0.036609054,0.013728736,-0.0767841,0.014160247,0.00037633505,0.031475645,-0.027891,0.0007301672,-0.024034673,0.0037688382,-0.0075244275,-0.019190969,-0.0030586733,0.07638717,-0.058804777,-0.02630959,0.082916915,0.029464893,-0.036910444,-0.006469457,-0.0682574,-0.007479055,0.023391867,0.057415135,-0.063745,0.028567027,0.03873816,-0.033826143,-0.051247973,-0.07371592,-0.013598142,-0.047880393,0.025868626,-0.012925152,0.015025656,-0.054448534,0.06986233,-0.044671394,-0.037487887,-0.03713938,-0.044612743,0.023765674,0.058858916,-0.018240381,0.017626476,0.022116672,0.00901462,0.087559484,0.030257765,-0.044527713,-0.06482999,-0.025346886,-0.051224142,0.10009641,0.049901918,-0.03698612,0.038127467,-0.0647444,-0.04372432,-0.030457335]]"), X: 0.547656, Y: 0.330986, W: 0.402344, H: 0.60446, Size: 515, Score: 102, }, "actor-a-1": Marker{ MarkerUID: "ms6sg6b1wowu1002", FileUID: "fs6sg6bw45bn0005", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("actor-1").ID, FaceDist: 0.5223304453393212, SubjSrc: "", SubjUID: SubjectFixtures.Get("actor-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.19501466,\"y\":-0.040039062,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp46_v\",\"x\":0.24780059,\"y\":-0.026367188,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp44\",\"x\":-0.14516129,\"y\":-0.051757812,\"h\":0.05859375,\"w\":0.08797654},{\"name\":\"lp44_v\",\"x\":0.16568916,\"y\":-0.049804688,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp42\",\"x\":-0.06451613,\"y\":-0.036132812,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp42_v\",\"x\":0.052785926,\"y\":-0.036132812,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp38\",\"x\":-0.0659824,\"y\":-0.0048828125,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp38_v\",\"x\":0.08504399,\"y\":-0.001953125,\"h\":0.05859375,\"w\":0.08797654},{\"name\":\"lp312\",\"x\":-0.17008798,\"y\":-0.0087890625,\"h\":0.05859375,\"w\":0.08797654},{\"name\":\"lp312_v\",\"x\":0.2111437,\"y\":-0.0048828125,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"mouth_lp93\",\"x\":-0.026392963,\"y\":0.13183594,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"mouth_lp84\",\"x\":-0.08064516,\"y\":0.17871094,\"h\":0.05859375,\"w\":0.08797654},{\"name\":\"mouth_lp82\",\"x\":0.029325513,\"y\":0.23144531,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"mouth_lp81\",\"x\":0.0014662757,\"y\":0.18261719,\"h\":0.059570312,\"w\":0.08944281},{\"name\":\"lp84\",\"x\":0.14516129,\"y\":0.18652344,\"h\":0.057617188,\"w\":0.08651026},{\"name\":\"eye_l\",\"x\":-0.1260997,\"y\":-0.001953125,\"h\":0.037109375,\"w\":0.055718474},{\"name\":\"eye_r\",\"x\":0.1260997,\"y\":0.001953125,\"h\":0.037109375,\"w\":0.055718474}]"), EmbeddingsJSON: []byte("[[0.032855246,-0.07232429,-0.04815501,-0.011801741,-0.0032103483,0.0301237,0.05892233,0.00646951,-0.035176292,0.028196052,-0.030077307,-0.06685119,0.020990284,-0.038560383,0.01825826,-0.051752236,0.012342135,0.026032474,0.024240453,-0.006976277,-0.14969136,-0.0024285947,-0.0074134357,-0.09146982,-0.03967136,-0.021166649,-0.04581924,-0.053691976,0.029491227,-0.0051317145,-0.0078089074,0.054134272,-0.015014806,0.022364784,-0.033213902,-0.08593488,-0.039883927,0.014747101,-0.06490993,-0.028171739,-0.008159537,0.014380036,-0.04653358,-0.028092079,0.005439498,-0.010360581,0.025590211,-0.016143693,0.006029687,-0.085595444,-0.055133607,-0.006755117,0.017286904,0.0075420975,-0.028040254,-0.014315911,0.0063766106,-0.019893538,0.018132381,0.07130619,-0.06411563,-0.079487845,0.057442058,0.043432467,-0.0072473357,-0.069809444,0.02243422,-0.059182137,-0.084966816,-0.038870424,-0.071094975,-0.047527812,0.053081967,-0.040204182,-0.018401334,-0.033760473,0.037008327,-0.046002593,0.096362986,-0.034936786,-0.0039791833,0.010414152,-0.011183865,0.042103436,0.008567614,0.05292752,-0.03668417,-0.030097948,0.014000469,-0.060841605,0.003195719,-0.050103813,0.0065110154,-0.014163554,-0.012031434,0.004975188,-0.025715034,0.025361452,0.008923189,0.0067529576,0.029884145,-0.024447357,0.017704992,0.023883883,-0.0011254395,-0.04223931,-0.04498216,-0.025191432,0.012617899,-0.05203149,-0.04475085,0.03008548,-0.039378714,-0.043345124,-0.03391975,0.104752235,-0.009164133,-0.017720146,0.045362163,0.04255787,0.010183778,-0.08097497,0.031196896,-0.010245854,0.02766351,-0.026423447,0.05947675,-0.04628546,-0.006393928,0.039347947,0.0005482721,-0.05529541,-0.010070946,0.08361046,0.00062064436,0.007913768,-0.009913223,-0.021926977,0.05465324,-0.0128699485,-0.036495075,0.06539919,0.0034716618,0.012557881,0.030759508,0.019568035,-0.0066889264,-0.0033072212,-0.04575941,0.06363104,0.03148176,0.06466417,0.040457275,0.002027742,0.005893496,-0.0035623028,-0.0105139455,-0.06888851,-0.004222814,-0.05237192,-0.040226724,0.0267429,0.0051985127,-0.09201201,-0.05568559,0.015682995,-0.024375828,0.064885125,-0.025768446,0.03679055,0.057959937,0.0047564334,0.09244771,0.024140155,-0.062997594,0.027446521,-0.0065566306,0.0033643593,0.031703487,-0.02165699,0.05559023,0.066683054,0.0660726,0.00974781,0.07601043,0.017041292,0.070716895,-0.052387897,0.032530535,-0.06681567,-0.022871584,0.03352602,-0.017034536,-0.010388532,0.051305674,0.010019757,-0.022984471,-0.026172945,0.053954646,-0.06819696,-0.01015469,-0.003955051,0.036666665,-0.031050239,-0.08013679,-0.02837582,0.033354558,0.05159143,0.087239996,0.034515638,-0.04632376,-0.006268703,-0.0706901,0.012611078,0.037834905,0.04603518,0.05536366,0.00090115395,-0.003120968,0.06531989,0.07337324,0.08021952,-0.0026173447,-0.0103801275,-0.008948841,-0.03689586,0.01072744,0.0070689917,0.0043986184,0.026989233,-0.025442392,0.020562518,-0.01395705,0.017678566,-0.10774234,-0.039579976,0.026478361,-0.032912575,0.053048328,-0.07658681,0.041787766,-0.08298041,-0.10818516,-0.059092283,-0.044391647,-0.044744607,-0.055444222,-0.10885611,0.002826131,0.01760361,0.09931783,0.030719511,0.042219907,0.016767267,-0.07456513,0.05140381,-0.031062327,-0.023170024,-0.0138462065,-0.03884725,-0.015841696,0.03637182,0.01907891,0.019417608,0.015712734,0.0033817694,0.07003932,-0.017421255,-0.0017069357,-0.08243727,0.03423313,0.02788201,-0.005583366,-0.052891035,-0.08233641,0.008539445,-0.020276109,0.009965778,0.03451201,0.12913105,0.03131948,0.099913284,-0.042192973,0.048168365,-0.03535933,0.06434285,0.008922108,0.01933475,0.03413161,-0.024891391,-0.010270658,0.0063089533,0.020419398,0.06521184,0.062081676,0.038025275,-0.0007443501,-0.01351645,0.015005282,-0.0104653565,0.0060110176,-0.0043178573,0.0012482941,-0.015664661,-0.080216005,0.0011655743,0.040932383,-0.00019473187,-0.05673829,0.018231891,-0.10595597,-0.049569525,-0.035623502,-0.039944995,-0.03166565,-0.03705636,-0.0006584446,-0.044564996,0.054860123,-0.0142813185,-0.01221049,0.047282692,0.08554689,-0.038415514,0.012577251,-0.0887724,-0.05759227,-0.032659724,-0.04867507,-0.036066126,0.0026297516,0.056695156,0.07609243,-0.084324226,-0.030844916,0.025689159,0.054182667,0.023727974,-0.03401803,-0.0014428025,-0.03872163,0.0039440733,-0.026607404,-0.03244791,-0.016608475,-0.023798747,-0.056947183,-0.04391733,0.03018079,0.05194356,0.05005993,-0.009526605,-0.051233474,-0.025138993,-0.016654449,-0.055433895,-0.025031775,0.0075716795,-0.032692224,0.015471422,-0.016325194,-0.052670605,-0.001577893,0.060323358,-0.005554155,0.020635812,0.03396529,0.023938023,-0.008477038,0.059978757,0.032743372,0.029255355,-0.050158966,0.014001326,-0.0497458,-0.049451165,-0.009876491,0.012463847,0.059876304,-0.048628423,-0.061366163,-0.043104444,-0.059743315,-0.027501991,-0.026212567,0.0056909523,-0.011885602,-0.0025480723,0.021128116,0.002087354,0.047409065,-0.011387444,-0.0027466123,0.013988325,0.0356983,0.037437078,-0.027809894,-0.0453338,0.036766164,-0.07042974,-0.062130354,0.013886667,-0.06115635,0.11400308,0.07871207,-0.008551372,-0.045933083,0.0133141875,-0.044125218,-0.0035975785,0.020274017,0.033914942,0.00045532387,-0.06851983,0.012079694,0.03451323,-0.009954221,0.0021440156,-0.00965334,0.0636073,-0.05002175,-0.045848675,0.04829302,0.05098234,-0.014159836,0.036640894,-0.014516405,-0.0073460895,-0.044774447,0.02955026,0.019875972,-0.021161543,0.021274494,0.012587778,-0.0029330768,0.0055311676,-0.03819962,-0.070777535,-0.0019666136,0.06333522,-0.06267681,-0.01205497,-0.00023279272,-0.019530538,0.051965658,-0.03133921,-0.00081407005,-0.035302483,-0.05896832,-0.08426587,-0.014516043,0.004309106,0.03311867,-0.023665972,0.047257707,-0.01812261,-0.027997129,-0.025251692,-0.021959215,0.020541757,0.0014857346,0.09639087,0.05580496,0.030594379,-0.036150362,0.009014544,0.09634428,-0.03496988,-0.022672776,-0.006968501,-0.04056171,-0.108776055,-0.050350178,0.12082129,0.079713605,0.029853592,0.017477341,-0.04754323,0.020407882,0.09167366,0.0330347,-0.037753075,-0.016409004,-0.07574358,0.052205704,-0.020273402,-0.08381828,-0.01966146,-0.010071673,0.07455173,-0.09812973,-0.047724105,-0.010024544,-0.032340642,-0.0752673,-0.051842786,0.018969253,0.020976553,0.019409496,0.012322483,0.03501961,-0.076072074,-0.008648517,0.025028905,-0.04160748,-0.009214679,-0.047751524,-0.01350248,0.052919757,-0.08047056,-0.106879674,0.04316481]]"), X: 0.388563, Y: 0.407227, W: 0.683284, H: 0.455078, Size: 466, Score: 39, }, "actor-a-2": Marker{ MarkerUID: "ms6sg6b1wowu1003", FileUID: "fs6sg6bq45bnlqd0", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("actor-1").ID, FaceDist: 0.5088545446490167, SubjSrc: "", SubjUID: SubjectFixtures.Get("actor-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.15982404,\"y\":-0.01953125,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"lp46_v\",\"x\":0.16129032,\"y\":-0.016601562,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp44\",\"x\":-0.10410557,\"y\":-0.043945312,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp44_v\",\"x\":0.11143695,\"y\":-0.037109375,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp42\",\"x\":-0.038123168,\"y\":-0.029296875,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"lp42_v\",\"x\":0.045454547,\"y\":-0.026367188,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp38\",\"x\":-0.049853373,\"y\":-0.0029296875,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"lp38_v\",\"x\":0.057184752,\"y\":0.0009765625,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"lp312\",\"x\":-0.13489737,\"y\":-0.00390625,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp312_v\",\"x\":0.13343109,\"y\":0.0048828125,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"mouth_lp93\",\"x\":-0.0029325513,\"y\":0.076171875,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"mouth_lp84\",\"x\":-0.08211144,\"y\":0.12792969,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"mouth_lp82\",\"x\":-0.0058651026,\"y\":0.15136719,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"mouth_lp81\",\"x\":-0.004398827,\"y\":0.11816406,\"h\":0.04296875,\"w\":0.06451613},{\"name\":\"lp84\",\"x\":0.079178885,\"y\":0.13183594,\"h\":0.041992188,\"w\":0.06304985},{\"name\":\"eye_l\",\"x\":-0.09090909,\"y\":-0.001953125,\"h\":0.029296875,\"w\":0.04398827},{\"name\":\"eye_r\",\"x\":0.09237537,\"y\":0.0029296875,\"h\":0.029296875,\"w\":0.04398827}]"), EmbeddingsJSON: []byte("[[0.025850557,-0.06093545,0.0368982,0.06372315,0.05819578,0.02103298,0.01997543,-0.00091705215,-0.0044884095,0.02101784,-0.010375784,-0.069441825,-0.041025233,-0.02052857,-0.021357061,-0.05729292,0.01153833,0.07206746,0.03228107,0.027049806,-0.09680665,0.026478615,-0.01815613,-0.11853885,-0.09021952,-0.032307897,-0.008106277,-0.012864208,0.006889873,-0.0035746095,-0.020889107,0.015340129,-0.030180681,-0.022996614,0.028324237,-0.09605296,0.0023181369,-0.045894492,-0.052518725,-0.02263554,-0.0049566897,0.07417423,0.011769089,-0.040978402,-0.030022662,-0.030996634,0.030147078,0.009252719,-0.005372327,-0.057348363,0.003100089,0.0016500733,0.03800931,0.04001668,0.012677207,-0.059954997,0.014178818,-0.0070479973,-0.0021506618,0.042117607,-0.05819657,-0.05596404,0.0651372,0.023987,-0.026973046,-0.039929256,0.039374754,-0.018362906,0.016696857,-0.07892796,-0.040695485,-0.025516117,0.034011215,-0.06638884,-0.015205762,-0.024361376,0.10429649,-0.06252967,0.0572541,-0.018680168,-0.0020993226,-0.0017909874,0.02976623,0.04914115,0.009871193,0.088365585,0.015116564,-0.086087346,0.036731087,0.0000752887,0.0060829753,-0.002749375,0.025623456,0.00021773092,-0.050351918,0.060579132,-0.014586461,0.025068155,-0.007418315,0.017641086,0.02851262,-0.020255527,0.0070640934,0.020123357,-0.004319393,-0.02265385,-0.0010601471,-0.020050107,0.039150067,-0.018594569,0.016206533,0.039614532,-0.042292144,0.010547318,-0.087099105,0.084688775,0.012596003,0.0063226717,0.072233714,0.07767242,0.0016507888,-0.07450455,0.0289588,-0.011538841,0.03744912,-0.007990092,0.044274215,-0.031113053,-0.032958783,0.07143125,-0.006628044,-0.035622302,0.0010994285,0.05464144,0.010740343,0.071469724,-0.072258435,-0.0325497,0.069872566,0.015427646,-0.03811206,0.07467409,-0.0014575481,0.05232805,0.008112917,0.051944427,-0.0024722444,0.0055723167,-0.011392005,0.07161022,0.07032855,0.0355871,0.008825621,0.0087439,-0.01611391,0.009837366,0.017460005,-0.020397808,-0.051347066,-0.030875728,-0.021624234,-0.021304565,-0.057859488,-0.04132616,-0.02648937,0.053935815,-0.03601852,0.031489648,-0.046292003,0.031165944,0.06813594,-0.0105578145,0.04025706,0.029717738,-0.036843926,0.0051157004,-0.0045793215,0.011164978,0.00013289182,-0.009687761,0.007492278,0.08754006,0.04718467,-0.048819933,0.0042895875,0.027882833,0.027942829,-0.057678856,0.044429038,-0.04565885,0.0011657312,0.08049496,-0.036958806,-0.008910369,0.056621093,0.026110312,-0.061702363,0.017555503,0.041242205,-0.038715087,-0.037767734,0.0046808748,0.00016832014,-0.02544352,-0.047905717,-0.009043355,0.012068452,0.08852993,0.040326595,0.034892663,-0.036096767,-0.04851799,0.020822499,0.0027219756,-0.046346728,0.031942263,0.023767224,0.044103436,-0.027173864,0.08712574,0.09681587,0.02972255,0.059853315,0.0140766725,-0.012022688,0.046874333,-0.02156004,-0.062485,0.04218151,0.016493505,0.09185935,0.03941136,-0.032595742,0.032620214,-0.054721415,-0.046962306,-0.013343799,-0.017996676,0.015918111,0.009111351,0.008349152,-0.095217675,-0.07116934,0.017525194,-0.04458484,-0.045515705,-0.03465809,-0.07348762,0.022729497,-0.00044160505,0.05590264,-0.04496442,0.04204909,0.0097087035,-0.04508295,0.01772759,-0.06171485,-0.022922626,0.009498403,-0.09159762,-0.03441869,0.08626533,0.10709985,0.004760334,0.014014961,0.033757064,0.016755385,-0.024957133,0.0062322705,-0.042117853,0.01842548,0.030491084,0.01871334,-0.08051873,-0.05987026,0.0065961587,-0.0428282,-0.014284081,0.020128557,0.08936088,0.009462254,0.102014415,-0.04007223,0.05792014,-0.10125429,0.01435374,-0.0080212075,0.03926293,0.066572085,0.011050679,-0.035060946,-0.02754076,-0.031371504,0.042674374,0.05182274,0.045753364,-0.019049607,-0.045874137,-0.046058774,-0.04331934,-0.022159534,0.044569768,0.026029905,0.03460048,-0.026210295,-0.010067363,0.02149376,0.051106166,-0.09497297,-0.0051454003,-0.031769942,0.013681938,-0.05617198,-0.022969976,0.04372262,-0.019325681,0.017163664,-0.03892902,0.052662864,0.009360625,0.053500857,0.090902716,0.15222716,0.015904753,0.044421777,-0.077695005,0.013201821,-0.022117233,-0.021025725,-0.045937363,-0.027292019,0.02432692,0.06508629,-0.040242467,-0.00741067,0.038486846,0.08022589,0.038982328,-0.059829433,-0.04762815,0.012859384,0.036591094,-0.040744346,-0.03644136,-0.029906962,-0.0026252659,-0.059644774,-0.018045977,0.03221406,-0.032125678,0.00041471247,-0.029704632,-0.017819304,-0.0037686932,-0.024612611,-0.07163339,0.0043299384,0.04770555,-0.03924099,0.056008447,0.028763933,0.05188814,-0.019262461,0.085330844,0.010896455,-0.0051132934,-0.03471156,-0.0148428455,-0.010709143,0.08729209,-0.0016238821,0.01891455,-0.050513223,0.04513832,-0.12252999,-0.005879728,-0.052913003,0.011536323,0.08204751,0.00536133,-0.022050064,0.0057066055,-0.03886006,-0.017958729,0.004520475,0.06552154,-0.010891071,0.00014121566,0.0076887296,-0.0011419698,0.011958931,0.018182158,-0.026482873,-0.004512454,0.05684528,0.050684657,-0.039094076,-0.04004381,0.06436006,-0.07305537,-0.037933875,-0.04439576,-0.1013637,0.085403785,0.09011323,-0.038690835,-0.06788751,0.0106515465,0.029921878,-0.005176694,0.012238351,0.014081106,0.026094873,-0.03305788,-0.011139984,-0.015388231,-0.051220205,0.0049824836,0.014251263,0.09640484,-0.030268047,-0.053675987,0.03731559,0.007775012,0.035535563,0.02225952,-0.053412843,0.026593747,-0.051303796,0.017838547,0.010709802,-0.020094335,0.06521372,0.04491418,-0.029864738,-0.041365206,-0.009245257,-0.056656696,-0.036779195,0.0066534644,-0.049411103,-0.055952385,-0.012297519,-0.016213154,0.01843797,0.010769171,0.00475617,-0.0096877115,-0.045869652,-0.10229853,-0.02326172,0.024581168,0.025495404,-0.030882027,0.038255822,-0.03170366,-0.053069178,-0.06427871,-0.028199887,0.039933547,0.05443948,0.08602497,0.009807377,0.010963302,-0.07279134,-0.006742718,0.12988268,-0.04568489,-0.038965367,-0.028095778,-0.024067627,-0.05677665,-0.037691217,0.0778802,0.07255626,0.041965704,0.012700325,-0.054935027,-0.036121413,0.068424605,-0.011170968,0.034630798,0.04743858,-0.048249003,0.0016257163,0.040156122,-0.08245449,-0.020883203,-0.048990805,0.07229405,-0.067015775,-0.022706345,-0.02952138,0.022175975,-0.021930775,-0.038443886,0.036818188,0.010916856,-0.031726003,0.061578147,0.031199284,-0.04972384,-0.0091532385,0.02102439,0.033434935,-0.022444356,-0.042535402,-0.009987717,0.041546587,-0.05721117,-0.09052485,0.016235605]]"), X: 0.590909, Y: 0.364258, W: 0.543988, H: 0.362305, Size: 371, Score: 164, }, "actor-a-3": Marker{ MarkerUID: "ms6sg6b1wowu1004", FileUID: "fs6sg6bw45bn0008", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("actor-1").ID, FaceDist: 0.3139983399779298, SubjSrc: "", SubjUID: SubjectFixtures.Get("actor-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.18475074,\"y\":-0.021484375,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp46_v\",\"x\":0.17008798,\"y\":-0.032226562,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp44\",\"x\":-0.12170088,\"y\":-0.045898438,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"lp44_v\",\"x\":0.12316716,\"y\":-0.043945312,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"lp42\",\"x\":-0.03372434,\"y\":-0.034179688,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"lp42_v\",\"x\":0.052785926,\"y\":-0.033203125,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp38\",\"x\":-0.048387095,\"y\":-0.005859375,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp38_v\",\"x\":0.06304985,\"y\":-0.0068359375,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"lp312\",\"x\":-0.14662756,\"y\":-0.001953125,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp312_v\",\"x\":0.14369501,\"y\":-0.0068359375,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"mouth_lp93\",\"x\":0.026392963,\"y\":0.08496094,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"mouth_lp84\",\"x\":-0.07331378,\"y\":0.14746094,\"h\":0.045898438,\"w\":0.06891496},{\"name\":\"mouth_lp82\",\"x\":0.014662757,\"y\":0.15527344,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"mouth_lp81\",\"x\":0.014662757,\"y\":0.1328125,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"lp84\",\"x\":0.09090909,\"y\":0.12890625,\"h\":0.044921875,\"w\":0.06744868},{\"name\":\"eye_l\",\"x\":-0.09677419,\"y\":0.0029296875,\"h\":0.029296875,\"w\":0.04398827},{\"name\":\"eye_r\",\"x\":0.09824047,\"y\":-0.001953125,\"h\":0.030273438,\"w\":0.045454547}]"), EmbeddingsJSON: []byte("[[0.0241189,-0.025448853,0.01971207,0.07477431,0.029368635,0.065149345,0.019691017,-0.027140766,-0.069330186,0.01369886,0.022924561,-0.10598081,-0.0107157715,-0.04387154,0.00074134365,-0.08449435,-0.013399419,0.062207934,0.016872669,0.010151844,-0.08972217,0.01775942,-0.037011825,-0.08675501,-0.08084332,0.007980393,0.024497543,-0.030971544,0.0054492033,0.017956365,0.035841327,0.07698076,-0.03380329,0.008567795,-0.023067271,-0.09811399,-0.0010807886,-0.0054811924,-0.05164965,-0.024714936,-0.037977934,0.01928394,-0.0017313755,-0.031516418,0.005060377,-0.063584946,0.03184435,0.0071552224,0.019650856,-0.05358221,-0.013053836,-0.0040250854,0.06048915,0.037270173,0.03410795,-0.032625496,0.022053579,-0.008050705,0.026254226,0.054191872,-0.0050928732,-0.0701365,0.08091048,-0.011165439,0.009210382,-0.042749535,-0.0025287757,-0.033075456,-0.047698416,-0.027112162,-0.06173463,0.016861385,-0.011524539,-0.046826746,0.006913302,-0.014969781,0.037694477,-0.08483616,0.06804454,-0.05438421,-0.0026405696,0.009939937,0.036037885,0.025078684,0.0023995,0.035154417,-0.0073386175,-0.06873133,0.079220675,-0.038906228,0.00889237,-0.01367475,-0.01234027,0.022059537,0.0067459717,0.03250029,-0.0028207155,-0.004059492,0.010042018,0.038391475,0.05251459,-0.0472587,0.022298004,-0.020642964,-0.015391656,0.0030214072,-0.06672993,-0.05324318,-0.009793097,-0.028919524,0.010212229,0.094463356,-0.05920518,-0.011330406,-0.06278151,0.119243756,-0.0062643364,-0.003138933,0.03991868,0.075746424,-0.01245529,-0.040539727,0.02519044,0.0035121313,0.018371355,-0.010697244,0.045725945,-0.044019576,0.033581235,0.05349032,0.029611032,-0.048856873,0.029358555,0.07958862,0.007803037,0.033951145,-0.0520466,-0.028146595,0.030594697,0.009223683,-0.03279937,0.0834495,-0.025979092,0.011159661,0.0017479698,0.092388265,0.02655674,-0.012700307,-0.011329149,0.09861018,0.03926978,0.06700136,-0.0052194875,-0.023631724,0.019508827,0.028228413,-0.01890668,-0.022872308,0.014641512,-0.054289263,-0.043869156,-0.034021996,-0.013381035,-0.025692547,-0.079564564,0.010310671,-0.03143431,0.034518253,-0.021919694,0.015661074,0.100572236,0.012357619,0.07375158,0.05263366,-0.06739581,0.043482315,-0.030185254,0.026642513,-0.009051221,-0.0137912715,0.031073352,0.051403936,0.056526307,-0.05260979,0.031139035,0.039328396,0.073295236,0.008607304,0.03255723,-0.05729197,-0.02364793,0.06145766,0.011409498,-0.01736089,0.011772054,0.020448195,-0.04909043,-0.018005868,0.040363066,-0.072531186,-0.03743413,-0.017628878,0.023893634,-0.0025076326,-0.02479488,-0.029163662,0.020921819,0.040692117,0.025948912,-0.013020787,-0.04117587,-0.05791494,0.022829456,0.06012986,-0.004330102,0.05611698,0.06765467,0.028230835,0.0031771883,0.05605863,0.074357055,0.037313923,0.016163273,0.04561953,0.03224548,-0.0007505003,-0.013430067,-0.024415143,0.0253009,0.023222398,0.057590898,0.08652045,-0.04533834,0.014417665,-0.06354011,-0.0362967,-0.029949388,0.029054292,0.042659663,-0.069231145,-0.017795684,-0.057715464,-0.11571932,-0.0047633424,-0.012693249,-0.054190062,-0.015187415,-0.114473745,0.03666413,0.024795914,0.01079902,-0.04760727,0.022203835,0.0014664391,-0.036828913,-0.009136192,-0.05434181,-0.009194948,0.025657827,-0.08249531,-0.0011342004,0.044261448,0.110017076,0.017704211,0.009680822,-0.040511273,0.0214013,-0.03371387,0.008263556,-0.087992616,0.08248352,0.06568328,0.0013820113,-0.045540746,-0.07393807,0.032076474,-0.010202442,-0.004528019,0.013565449,0.09030435,0.028257981,0.06743232,-0.060353294,0.050759707,-0.08575617,0.05504735,-0.0041432222,-0.030415514,0.020774705,-0.014768877,-0.043551575,0.0075783143,-0.022090174,0.07088676,0.039059203,0.026824951,-0.018257143,-0.059455562,0.0068820897,-0.023811212,0.025966812,0.038778935,0.03408857,-0.003927295,-0.009927159,0.006845898,0.022898953,0.095958136,-0.10943442,0.059841156,-0.0329057,-0.014989488,-0.0099570425,-0.0054250853,0.028435722,-0.005912107,0.0015472741,-0.070560716,0.01405069,0.02599756,0.055876102,0.06497188,0.06686203,-0.00041323446,0.071866155,-0.08703112,0.019231811,-0.019437244,-0.01683527,-0.027770445,0.005866662,0.03531373,0.04985404,-0.057761267,-0.05643273,0.031104514,0.027478304,0.012353039,-0.042244535,-0.027004665,-0.015228322,0.0033582435,-0.003757445,-0.021780523,-0.0002495209,0.003004802,-0.067975186,-0.027171573,0.047085125,-0.027879145,-0.046555117,-0.03397349,-0.05223016,-0.036266815,-0.01995977,-0.018127305,0.03331055,0.011295108,-0.032571245,0.030799594,-0.0032081523,-0.005006236,-0.051317785,0.051040146,0.013830912,-0.013475147,-0.033495985,0.0041825725,-0.038844317,0.07565783,0.051785465,0.034383923,-0.057561517,0.023323342,-0.10755573,-0.057723172,-0.034321193,-0.007261268,0.04946982,-0.07867155,-0.043154243,-0.050276272,-0.028036693,-0.072502784,-0.035116717,0.023928309,-0.006641352,-0.028951764,-0.0041091447,0.02050946,0.029804204,0.0095836185,-0.0005514448,-0.010170746,0.038714428,0.052193444,-0.054136213,0.016370663,0.039368838,-0.071207434,-0.059000753,0.025615899,-0.05380398,0.10234193,0.07370049,-0.034783952,-0.071128905,0.036198493,-0.0009824741,0.038318958,0.020151136,0.028071845,-0.010147319,-0.03663609,0.017137734,-0.0032465514,-0.06701466,0.010660954,0.011438627,0.08278354,-0.051199164,-0.08603243,0.022747265,0.020045064,0.013767936,0.02868625,-0.0062343683,0.042678885,-0.014097165,0.052178975,-0.006595326,-0.036774322,0.02628719,-0.0106942,0.007208945,-0.02574367,-0.04521323,-0.08107589,-0.0017406823,0.01035763,-0.04006552,-0.041636836,-0.033654448,-0.028680064,0.014997795,0.0049166796,-0.007070443,0.028293293,-0.05064481,-0.102517426,0.0003173745,0.012364589,0.010157306,-0.03782072,0.04388659,0.0053726607,-0.07745431,-0.051161427,-0.009871388,0.044439815,0.019786526,0.12772952,0.041621633,0.061495423,-0.069796726,-0.015762078,0.14293943,-0.016974578,-0.045484126,-0.051442474,-0.036469147,-0.107812196,-0.04059229,0.09380313,0.041693937,0.012281637,0.00004808483,-0.05351686,-0.025729517,0.03091851,0.0027129648,0.005839676,0.04283082,-0.052247364,0.0037811226,0.007034242,-0.091081426,-0.013131171,-0.052680276,0.06921746,-0.064018995,-0.0019934413,-0.017883189,0.0024744943,-0.049458586,-0.046182927,0.04503004,0.0022532486,0.018249985,0.06025625,0.052217223,-0.063786834,0.040839724,-0.013639264,-0.008605548,-0.0015252201,-0.02793267,-0.0148031525,0.05309417,-0.030952483,-0.06517421,0.051078424]]"), X: 0.423754, Y: 0.286133, W: 0.549853, H: 0.366211, Size: 375, Score: 100, }, "actor-a-4": Marker{ MarkerUID: "ms6sg6b1wowu1005", FileUID: "fs6sg6bw45bnlqdw", Thumb: "pcad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: FaceFixtures.Get("actor-1").ID, FaceDist: 0.3139983399779298, SubjSrc: "", SubjUID: SubjectFixtures.Get("actor-1").SubjUID, MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte("[{\"name\":\"lp46\",\"x\":-0.2170088,\"y\":-0.043945312,\"h\":0.064453125,\"w\":0.09677419},{\"name\":\"lp46_v\",\"x\":0.24780059,\"y\":-0.018554688,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"lp44\",\"x\":-0.15542522,\"y\":-0.057617188,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"lp44_v\",\"x\":0.17008798,\"y\":-0.037109375,\"h\":0.064453125,\"w\":0.09677419},{\"name\":\"lp42\",\"x\":-0.06451613,\"y\":-0.033203125,\"h\":0.0625,\"w\":0.09384164},{\"name\":\"lp42_v\",\"x\":0.06304985,\"y\":-0.025390625,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"lp38\",\"x\":-0.07331378,\"y\":-0.0068359375,\"h\":0.064453125,\"w\":0.09677419},{\"name\":\"lp38_v\",\"x\":0.08211144,\"y\":0.0029296875,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"lp312\",\"x\":-0.19061583,\"y\":-0.018554688,\"h\":0.0625,\"w\":0.09384164},{\"name\":\"lp312_v\",\"x\":0.2111437,\"y\":0.0048828125,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"mouth_lp93\",\"x\":-0.03372434,\"y\":0.14160156,\"h\":0.0625,\"w\":0.09384164},{\"name\":\"mouth_lp84\",\"x\":-0.1202346,\"y\":0.17871094,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"mouth_lp82\",\"x\":-0.0029325513,\"y\":0.23730469,\"h\":0.0625,\"w\":0.09384164},{\"name\":\"mouth_lp81\",\"x\":-0.019061584,\"y\":0.1875,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"lp84\",\"x\":0.11583578,\"y\":0.1953125,\"h\":0.06347656,\"w\":0.09530792},{\"name\":\"eye_l\",\"x\":-0.13489737,\"y\":-0.0068359375,\"h\":0.041015625,\"w\":0.06158358},{\"name\":\"eye_r\",\"x\":0.13636364,\"y\":0.0068359375,\"h\":0.040039062,\"w\":0.0601173}]"), EmbeddingsJSON: []byte("[[0.034662753,-0.07515357,-0.027421089,0.027164537,0.03281823,0.034066916,0.040151987,0.005131678,-0.051408786,0.02138763,-0.0020104107,-0.092951514,0.0011152446,-0.04599768,-0.008270178,-0.045973886,0.005246504,0.0467101,0.027940497,0.009135831,-0.13090636,0.015421832,-0.008646728,-0.12298539,-0.07183828,-0.021239195,-0.01587619,-0.027267754,0.026962636,0.013014155,-0.018146865,0.03272022,-0.0355399,0.014600214,0.008228809,-0.08974728,0.004542779,-0.004164545,-0.06299126,-0.041513063,-0.010044361,0.045358863,0.007475488,-0.03035305,-0.0019370121,-0.03377335,0.02097817,-0.029641997,0.0053119785,-0.07807538,-0.053098224,-0.019402111,0.036674708,0.020695541,-0.022861501,-0.0328745,0.00041619025,0.0066822763,0.02678277,0.06844911,-0.024177998,-0.089664154,0.055873763,0.026511757,-0.016572997,-0.04733968,0.06041348,-0.04506725,-0.0440545,-0.043465305,-0.08466757,-0.047940645,0.06937382,-0.05174244,-0.031919822,-0.052532118,0.055104855,-0.057418138,0.09513463,-0.030847855,-0.013393116,0.017321678,0.015352415,0.06266471,0.004371987,0.082215935,-0.027642775,-0.037788026,0.019007893,-0.040698484,0.007252205,-0.04555225,0.0036288318,-0.019109517,-0.025423475,0.022892103,0.020521527,0.037838284,0.0069704326,0.0028434666,-0.000007890554,-0.027438216,0.01632463,0.044652876,-0.021146774,-0.059141133,-0.018336238,-0.03956552,0.016873531,-0.03617141,-0.036296625,0.0452434,-0.033563133,-0.044047527,-0.056349114,0.071866535,0.0006336365,0.0020115525,0.07210679,0.054019984,0.004293855,-0.077260524,0.015685929,0.007959316,0.027031986,-0.008321843,0.053827506,-0.019692779,-0.006546793,0.06447086,-0.009692751,-0.044721182,0.011167481,0.091063015,0.011955558,0.015812382,-0.03727312,-0.016216457,0.064182766,0.035192747,-0.03690497,0.053072676,-0.0014434075,0.03661861,-0.011134347,0.030718837,-0.026580738,-0.019045766,-0.002533027,0.09117581,0.07268581,0.06505146,0.026307546,0.0011414461,-0.014501565,-0.01381276,-0.010762091,-0.06934276,-0.030354645,-0.030254962,-0.040888697,-0.008559847,-0.0025087395,-0.06811634,-0.06408384,0.034834474,-0.03239649,0.018536773,0.0021422682,0.043406606,0.07114512,0.014656275,0.061994847,0.033170443,-0.057281204,0.02749827,0.0064080837,0.030610576,0.048294768,-0.033563465,0.031064298,0.0915216,0.052813128,-0.004047518,0.03655105,0.043488204,0.05502745,-0.038181335,0.052595284,-0.047716342,0.004784436,0.04710556,-0.054140363,-0.004285169,0.051303614,0.03542736,-0.053388838,0.01631177,0.031889267,-0.043530267,-0.025739623,0.0066037597,0.0041180085,-0.0343014,-0.06750475,0.01816452,0.010236262,0.07606839,0.05248127,0.014703146,-0.04228897,-0.042164054,-0.008262126,0.026167141,-0.0092158355,0.064278185,0.02536698,0.019015567,-0.033657987,0.09837179,0.074141435,0.04427338,0.0008232351,0.0030125817,-0.009613508,0.020759264,0.013438778,-0.026801428,0.029361656,0.029830646,0.034178168,0.041513868,-0.02565135,0.015280345,-0.091757916,-0.057591274,0.020382164,-0.032912165,0.047102317,-0.0537798,0.03522351,-0.070603274,-0.10042917,-0.044259664,-0.05656392,-0.066472664,-0.052284684,-0.07114145,0.010942273,0.018367367,0.06885217,0.000328366,0.015852025,-0.017089441,-0.055761185,0.03959602,-0.03540408,-0.027026111,0.01097983,-0.087987356,-0.0141266575,0.0477098,0.04715876,0.02981215,0.028453104,0.012142521,0.0414125,-0.007917575,0.019288184,-0.09619139,0.037593354,0.046853587,0.024258884,-0.040744804,-0.081190184,0.010178999,-0.017786952,0.0076704076,0.03182778,0.108371824,0.0300346,0.118935734,-0.030138513,0.053382974,-0.054067366,0.013308057,-0.002923006,0.04212049,0.06448999,0.008950148,-0.024584545,-0.016902402,-0.018726686,0.077366434,0.0720145,0.04482006,-0.020877872,-0.003987193,-0.0055302437,-0.040336147,-0.0020323289,0.025164614,0.01988865,0.0020544392,-0.06139798,0.017070476,0.051994644,0.013102099,-0.07839188,0.03814943,-0.06141372,-0.0053769723,-0.039636735,-0.062667124,0.0030709528,-0.01150501,-0.0037239688,-0.018055739,0.06664771,-0.007206864,0.017365457,0.045659833,0.119550705,-0.010744959,0.028682454,-0.08890404,-0.045568824,-0.03403332,-0.031422295,-0.04852906,0.0055045974,0.032420922,0.06823958,-0.07809195,-0.010570189,0.034012794,0.055969138,0.022515832,-0.048068438,-0.03258343,0.009647381,0.037987974,-0.03464533,-0.038181216,-0.061377004,-0.0004884829,-0.08379789,-0.057416007,0.031279963,0.019974045,0.017852016,-0.032113247,-0.008062755,-0.015848003,-0.012933433,-0.08879804,-0.0096005555,0.04632914,-0.041106034,0.015690649,-0.018962137,-0.009873597,-0.015545504,0.04258754,0.0063387137,-0.0227696,0.0015804488,-0.010803154,-0.030131789,0.06305187,0.02417472,0.030738,-0.08922446,0.02478569,-0.08690923,-0.031031277,-0.008328196,0.027938409,0.061026003,-0.032657385,-0.04322679,-0.029606264,-0.04135331,-0.045082416,0.0023190908,0.030073075,0.0035433297,-0.008771726,0.036227144,0.0069337306,0.036894448,0.024385192,-0.0076897577,0.013183864,0.05346051,0.056419842,-0.013123595,-0.011530761,0.039244197,-0.074317284,-0.049931187,-0.007667257,-0.08389443,0.1084195,0.102141395,-0.0045269835,-0.07588101,-0.012968535,-0.022474805,0.0009351038,0.027013958,0.030684583,0.00045854814,-0.04521747,0.028453987,0.0128245875,-0.021188725,0.00930826,-0.01831257,0.0883785,-0.022052575,-0.05507159,0.06886579,0.03973715,-0.0072707967,0.054643735,-0.0073106834,0.01063856,-0.061747946,0.037848778,0.0059647635,-0.012968941,0.025542775,0.026938496,0.009256024,0.0045996383,-0.0147836385,-0.05553128,-0.008061934,0.050770868,-0.06617903,-0.017863886,-0.012341288,-0.006366187,0.047267023,-0.00113794,0.0026080452,-0.01546114,-0.02984513,-0.10787811,0.009284058,0.012735944,0.037892807,-0.0268263,0.06422156,-0.013755387,-0.048054893,-0.045854043,-0.027558113,0.0057992544,0.039035577,0.1051863,0.03645703,0.04235808,-0.060727175,-0.013235699,0.1267887,-0.057449587,-0.02739236,-0.014682901,-0.027444385,-0.08132802,-0.048119355,0.09594713,0.0930062,0.049179528,0.02065355,-0.052434687,-0.017428227,0.08315784,-0.009780164,0.0048672156,0.017652279,-0.06980165,0.017093178,-0.007031052,-0.08876805,-0.0061365073,-0.049735166,0.05652551,-0.07136955,-0.023506315,-0.048254803,-0.008994596,-0.047011845,-0.03392492,0.05161366,0.032137435,0.014259274,0.04449572,0.03503813,-0.056423254,-0.015646791,0.021688757,-0.032869253,-0.0152852265,-0.035607334,-0.03943668,0.039529365,-0.03870807,-0.09175319,0.048733745]]"), X: 0.5, Y: 0.429688, W: 0.746334, H: 0.49707, Size: 509, Score: 100, }, "ms6sg6b14ahkyd24": Marker{ MarkerUID: "ms6sg6b14ahkyd24", FileUID: "fs6sg6bw45bnlqdw", Thumb: "acad9168fa6acc5c5c2965ddf6ec465ca42fd818", FaceID: "VF7ANLDET2BKZNT4VQWJMMC6HBEFDOG6", FaceDist: 0.3139983399779298, SubjSrc: "", SubjUID: "", MarkerSrc: SrcImage, MarkerType: MarkerFace, MarkerName: "", LandmarksJSON: []byte{}, EmbeddingsJSON: []byte("[[0.10730543085474682,-0.007740289179353713,0.04013410115400314,0.01458170011165962,-0.033333988977870946,0.06636234022813034,-0.00010941258007316575,0.0266348918046072,-0.05017391628723953,0.026034562221256254,-0.03388911566430759,-0.03461048494812202,0.040559725024994844,0.02683793627304573,-0.00972269717541027,-0.07836494561032105,-0.022470260049817198,0.011276674801708603,-0.05526434009558201,0.014401617237932205,-0.031258523568474236,-0.05416104192368187,-0.05567222379755878,0.017950877029356768,-0.016397424193561935,0.062346790423413276,-0.019043469394284057,0.04085343435437774,-0.05627231374819698,0.002355368169155769,0.07268979656775187,-0.0015096598716884627,-0.030188596848975374,-0.030941932784964564,-0.02826790015985233,-0.05420075791573048,-0.015742074680253033,0.019360258910790157,-0.008227027287290193,-0.08797317745792674,-0.07358703463505077,0.09688007249803735,0.015168583267354964,-0.034569315837825396,0.054231690688333986,0.018033145214487362,0.01579093209709463,-0.09204238994311237,0.08645247031890774,-0.10499936100221444,0.022421303168151857,0.005288450124515152,-0.017391072021601867,0.011218363053184624,-0.08478270589438915,0.0038618527485391615,-0.023381522484070015,-0.05428399272960853,-0.049397680150033,0.04006855272634697,-0.056704127236808774,-0.00958812557516262,-0.024006645464504622,-0.0073450501057456975,-0.03138197361666756,-0.013765138786817361,0.01162637563227787,0.0023935177775817563,0.08953138773108768,0.05337418268588829,-0.012870218945196915,0.03652425150877475,-0.027783526080406188,-0.019489638927241745,-0.01591402705199299,-0.005031992847164803,-0.014592982936285286,-0.03540697236418762,0.015595597412254449,0.004689344744109726,-0.009276015175478172,0.0058068592886232374,0.10480716412028504,0.0169216338187767,-0.0159497901004467,0.04574707649004688,-0.012214007484710122,-0.04849749380776977,0.054958586523843764,0.055898306713647844,-0.05052226642217827,0.008803732924324036,0.02326267119630642,0.047305830959801676,0.04497242295638694,0.020850376996620942,0.01314765746152954,-0.06768179592533874,0.05844347174572754,-0.03379152370001783,0.009412363744416903,0.04876727547273407,0.03299943491180715,0.01981742466488743,0.0547951049219265,0.020208802772381018,-0.08163521584288311,-0.038910958658009524,-0.004049565234655952,-0.02227413252290535,-0.0176418922441086,0.0568860088455925,-0.03240221023084612,0.0018760896289435579,-0.03234445138420723,0.007601825631139565,0.004916589611196899,-0.07292478312312889,0.021712048014592936,0.008807552270011749,0.0045489283733609,0.018861112444398878,-0.0341377092368577,-0.06305481604926585,0.039113288345403674,-0.01390809621003151,-0.04930861238819008,0.02377057523982868,0.019087416355893325,-0.013899296822125817,0.02251690464443226,0.08074113913260841,-0.018922226267959787,0.07189693789385795,0.060660045672045707,-0.023638294307546808,-0.006141792394255906,-0.06662582397409247,-0.013895529799502565,0.016608829923953898,-0.00390724028582611,0.05038048671591301,-0.015355035841564064,-0.0008532485082750321,-0.004694504582768126,-0.016610601585741958,0.008180847821889228,-0.04035771976174698,0.01847608156922703,0.08409907464663602,-0.029978496458568385,-0.06499117178372192,0.07448235046571827,0.10142187900247382,-0.023405319141915855,0.05237413796294822,0.04315940939233541,-0.02349721355909328,0.012594679585403442,-0.10457832859776592,0.001468614040066719,0.0165479676672657,-0.07708675453700256,-0.05102918249748802,0.045642631412478735,-0.004785828004440499,0.0203317336356945,-0.02006395174473057,0.04201285855375195,0.032883700123707296,0.0477916040669878,0.08070634492548084,-0.09245629058029556,0.05112703265588493,-0.006224603994954872,-0.0005257819460310555,0.005513055457300567,0.02521921247766018,0.012207323409280013,-0.009936333046208725,-0.007426916158089448,0.027260071572856714,0.006004036209329835,-0.039462719505699156,0.04428369084658737,0.005021041270120048,0.00955255667591259,-0.024385389176467896,0.06930311634011002,-0.0389855151682066,0.009325780048200605,0.0067487294106089776,-0.0538568250434906,-0.04132319716445885,0.005287871307727813,0.02836177144018917,0.016369665767238237,-0.02612976718916588,0.0781344821977253,0.0124423230052565,0.007052016124275589,0.07093038059380721,-0.040975969278632354,0.05987170546998787,0.0429845054696949,0.06377765311330413,-0.054260408781722336,0.017124075467253648,0.011034745989844896,-0.01129856537228031,-0.03058279355517101,-0.052326615682374664,0.06340472755555274,-0.007235566082305412,0.08209440086026383,-0.0037407900405261995,-0.02100836190159107,0.051361881913555715,0.035520336595121764,0.019260735587613487,0.04814414379586697,-0.010566343916274241,-0.03353529212573547,0.05283452853813282,-0.027749841873006824,-0.03820509264906912,-0.0015166780129867554,0.02487160170807457,0.03048850776525669,-0.030538799520168875,0.0921192664219265,0.03269134465648327,-0.031787506815418434,-0.01908650508301182,0.05982613160244779,-0.053232109332236294,-0.03650761934345913,0.0026813365359365463,0.032588356136758805,-0.032364926929593085,0.07780626359498405,0.044541174425177764,0.011626562325897788,0.03554684517681643,-0.030510870967539787,-0.04088990689640999,0.07105028789278889,0.03138784011465073,-0.06342823476303319,0.09164142434876824,-0.0112280279000453,-0.04595559070266152,0.08798781996626949,0.026803936697537615,-0.0014241986940294257,-0.020834715982498548,0.023556784775891685,0.008996215819517326,-0.0012677171940084454,-0.07692881668502807,0.024615258007191814,0.02948731386628723,0.06911119150276565,-0.041541930091072085,0.07317672894504547,-0.012252912262506771,-0.03429316172188286,0.03286905748134327,0.025736928383919527,0.003926683415351601,0.006255630871762562,-0.020806247741813468,0.0675457214042778,0.007579460672946357,0.012004441173839569,-0.028187582314963343,-0.0018772867526912688,-0.01844064376148571,-0.05389302147970715,-0.04154738243111,-0.05912346626385308,-0.003186127453911171,-0.015869915592464562,0.036601020266580665,-0.08332522355102062,-0.015594113206121387,0.010554298175920372,0.009863903175943527,-0.04408378851017952,-0.01321298950931368,-0.026788807387387467,-0.00905998101737915,-0.07901183432849217,0.022626760559060342,0.05966787504726859,-0.0373913765745697,-0.00620443077226124,-0.005321248754354935,-0.05629461318153381,-0.04339327553344822,0.03066110013017902,-0.0560899433873785,0.029585001932263853,-0.06142458606396866,0.018855098215825178,0.03336997769082436,-0.07772387048591708,0.02869667860757885,0.04751144987925148,0.07131169258731747,0.01554444873138424,-0.019102520424152183,-0.06713599618322277,0.021553602847260475,0.022784952935549926,-0.07224605423420524,-0.03428428022313595,0.025510370273970604,-0.042455744666400605,0.024999596293880464,0.0007267671517935561,-0.007103063657435513,0.051193967364198685,-0.03918299151588478,-0.05340270113635778,-0.0005553757678619388,-0.04361415384515381,-0.05659870360464592,-0.003001301568729019,-0.10493783691904449,0.007865782491956196,-0.010459198798326888,0.03839990013440418,-0.029396389004837837,0.04123072916591454,-0.003870788638888664,0.011576299454542732,0.021793958225202522,0.0013144587776207917,-0.024084851461598205,-0.007895128372669067,0.02794634672595444,0.013256276108802492,-0.06581846043538475,-0.03512838380870453,0.010219935781849479,0.041956290830379675,-0.02193645334812136,0.036522118692461206,-0.04014683200312634,-0.007509486720670319,0.025035869046040268,0.03341998480559387,-0.03562761249035026,0.04892323307058029,-0.030771232001644132,-0.016917612628533363,0.002604945885121918,-0.044643074882380486,0.01154372547133419,-0.021955625942386627,0.018907365975515553,0.03550167291446045,0.01069377167082758,0.00010183658435096768,-0.04899959038740444,0.04724968668608978,-0.01864932432341235,0.0591259089168789,0.07907125494612216,0.028897156624642945,0.01633692932619137,0.06420496597867965,0.018129071607111358,-0.06522170992608013,-0.03939954941189146,0.04130569647272587,0.04419998725251961,0.04542913027885341,0.018470383181769943,0.008568164058957863,-0.06659949697784996,-0.053012251715078354,-0.020253768667636778,-0.0428765378002491,0.07184141544699574,0.02058260375849676,-0.03779574153167915,0.0021254573788347247,0.00922705617390442,-0.06903300705643031,0.048223514541707424,-0.008124176700399017,0.06623217639861775,0.011399885879904556,0.13320644195552445,-0.015707634324862062,0.004298537653726769,0.007440328888434029,-0.03552852988830433,0.006549433453245544,-0.019685784628289793,0.001693401851796341,0.050209905835451124,0.023254144681681632,-0.04905436637160683,-0.01058279299507389,0.06261640349854469,-0.07554102380998802,-0.010803172210683784,0.04001997347501145,-0.013296409033855438,0.056829244201244355,0.029110596151947783,0.006392164909307861,-0.0035876165295053485,-0.019022594469099045,-0.06487911801050472,0.02178870949222603,0.05293369045270252,0.0014374271403566358,0.02058438161717472,-0.05258523574003887,-0.03312468141761551,0.051533518133239746,0.03929023312081566,-0.07294044148252202,0.01607557897360134,-0.0007034383966050719,0.014925192443655966,0.051449392859268764,-0.06079890988933106,-0.04363216685223599,0.028568039422766974,0.045766175851156804,0.07275596444172669,-0.02276483221781349,0.09294405910429002,0.06625853254336929,-0.04167032707059745,-0.04751508792911625,-0.014774199240300752,0.023224616626467326,-0.01281115503053608,0.03472993899021339,0.008343472536062031,-0.011408440443860645,0.004419146704378701,0.05045044130775452,-0.03518939370823498,-0.04170123182437134,0.022208642446600917,0.07141607704347333,-0.04112406919064011,0.03227901691925602,0.03527487398910847,-0.029543274091153718,0.005872693907862854,-0.008123872357421475,-0.058780187362098696,-0.00027467445847377796,0.024044984289353373,0.057634827237228584,-0.04450547877367153,-0.03946884506688686,-0.02006971111822632,0.006139106799438476,0.014848452844277668,-0.040448605585189826,-0.047422823475079534,0.00047739853115692137,-0.03920787799786568,-0.05102518756346798,0.029106281725284004,0.023013759328845976,-0.0181101632871727,0.003943383191735267,-0.11744085779379082,0.00652325401639185,-0.0016088291387550352,0.004582751362570763,0.06564233218507957,0.014525142593546867,-0.05397913284980278,-0.005146496768864823,0.008265835225847246,-0.09204165418391608,-0.023673615795413973,0.016221329961976054,0.0560354235721693,-0.03387280199538708,0.011243025140723228,0.02789629877560217,0.07942785398379296,0.019745293456116107,-0.03951280953572121,-0.0325216371505229,-0.04877831216997623,0.008021598871560669,0.06607214515587043,0.08340918698473548,-0.06638043362871171,0.0003533690162649157,-0.05787711264029312,0.017585791805968413,-0.004768172475530777,-0.031721018591366806,0.059853391075907716,0.08903246940908241,0.00910143805785122,-0.02198764055408287,0.023417301139897727]]"), X: 0.1, Y: 0.229688, W: 0.246334, H: 0.29707, Size: 209, Score: 55, }, }
var MetadataEstimateInterval = 24 * 7 * time.Hour // 7 Days
var MetadataUpdateInterval = 24 * 3 * time.Hour // 3 Days
var PasswordFixtures = PasswordMap{ "alice": NewPassword("uqxetse3cy5eo9z2", "Alice123!", false), "bob": NewPassword("uqxc08w3d0ej2283", "Bobbob123!", false), "friend": NewPassword("uqxqg7i1kperxvu7", "!Friend321", false), "fowler": NewPassword("urinotv3d6jedvlm", "PleaseChange$42", false), "jane": NewPassword("usamyuogp49vd4lh", "Jane123!", false), "deleted": NewPassword("uqxqg7i1kperxvu8", "Deleted123!", false), "metrics": NewPassword("cs5cpu17n6gj2qo5", "xcCbOrw6I0vcoXzhnOmXhjpVSyFq0l0e", false), }
var PasswordLength = PasswordLengthDefault
PasswordLength specifies the minimum length of a password in characters (runes, not bytes).
var PhotoAlbumFixtures = PhotoAlbumMap{ "1": { PhotoUID: "ps6sg6be2lvl0yh7", AlbumUID: "as6sg6bxpogaaba8", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("19800101_000002_D640C559"), Album: AlbumFixtures.Pointer("holiday-2030"), }, "2": { PhotoUID: "ps6sg6be2lvl0y11", AlbumUID: "as6sg6bxpogaaba9", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo04"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "3": { PhotoUID: "ps6sg6be2lvl0yh8", AlbumUID: "as6sg6bxpogaaba9", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo01"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "4": { PhotoUID: "ps6sg6bexxvl0yh0", AlbumUID: "as6sg6bxpogaaba9", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo19"), Album: AlbumFixtures.Pointer("april-1990"), }, "5": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bxpogaaba9", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "6": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bxpogaaba8", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "7": { PhotoUID: "ps6sg6be2lvl0y21", AlbumUID: "as6sg6bxpogaaba7", Hidden: false, Missing: false, Order: 1, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 5, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo14"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "8": { PhotoUID: "ps6sg6be2lvl0y21", AlbumUID: "as6sg6bxpogaaba8", Hidden: false, Missing: false, Order: 1, CreatedAt: time.Date(2020, 3, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 5, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo14"), Album: AlbumFixtures.Pointer("berlin-2019"), }, "9": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab24", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("light&"), }, "10": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab23", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("pets&dogs"), }, "11": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab19", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("&ilikefood"), }, "12": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab22", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("sale%"), }, "13": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab21", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("%gold"), }, "14": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab20", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("i-love-%-dog"), }, "15": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab25", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("'family"), }, "16": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab26", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("father's-day"), }, "17": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab27", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("ice-cream'"), }, "18": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab28", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("*forrest"), }, "19": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab29", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("my*kids"), }, "20": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab30", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("yoga***"), }, "21": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab31", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("|banana"), }, "22": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab32", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("red|green"), }, "23": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab33", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("blue|"), }, "24": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab34", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("345-shirt"), }, "25": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab35", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("color-555-blue"), }, "26": { PhotoUID: "ps6sg6be2lvl0yh0", AlbumUID: "as6sg6bipotaab36", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo03"), Album: AlbumFixtures.Pointer("route-66"), }, "27": { PhotoUID: "ps6sg6be2lvl0yh9", AlbumUID: "as6sg6bipotaab26", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo02"), Album: AlbumFixtures.Pointer("father's-day"), }, "28": { PhotoUID: "ps6sg6be2lvl0yh9", AlbumUID: "as6sg6bipotaab24", Hidden: false, Missing: false, Order: 0, CreatedAt: time.Date(2020, 2, 6, 2, 6, 51, 0, time.UTC), UpdatedAt: time.Date(2020, 4, 28, 14, 6, 0, 0, time.UTC), Photo: PhotoFixtures.Pointer("Photo02"), Album: AlbumFixtures.Pointer("light&"), }, }
var PhotoFixtures = PhotoMap{ "19800101_000002_D640C559": { ID: 1000000, PhotoUID: "ps6sg6be2lvl0yh7", TakenAt: time.Date(2008, 7, 1, 10, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(2008, 7, 1, 12, 0, 0, 0, time.UTC), TakenSrc: "meta", PhotoType: "image", TypeSrc: "", PhotoTitle: "Lake / 2790", TitleSrc: "", PhotoDescription: "photo description lake", DescriptionSrc: "meta", PhotoPath: "2790/07", PhotoName: "27900704_070228_D6D51B6C", OriginalName: "Vacation/exampleFileNameOriginal", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 2790, PhotoMonth: 7, PhotoDay: 4, PhotoIso: 200, PhotoExposure: "1/80", PhotoFNumber: 5, PhotoFocalLength: 50, PhotoQuality: 3, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "meta", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000000), Keywords: []Keyword{ KeywordFixtures.Get("bridge"), }, Albums: []Album{ AlbumFixtures.Get("holiday-2030"), }, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000000, "flower", 38, "image"), LabelFixtures.PhotoLabel(1000000, "cake", 38, "manual"), }, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 9, PhotoStack: 0, PhotoFaces: 3, }, "Photo01": { ID: 1000001, PhotoUID: "ps6sg6be2lvl0yh8", TakenAt: time.Date(2006, 1, 1, 2, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(2006, 1, 1, 2, 0, 0, 0, time.UTC), TakenSrc: "meta", PhotoType: "raw", TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "photo description blacklist", DescriptionSrc: "", PhotoPath: "2790/02", PhotoName: "Photo01", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: PlaceFixtures.Pointer("Germany"), PlaceID: PlaceFixtures.Pointer("Germany").ID, PlaceSrc: "manual", Cell: CellFixtures.Pointer("Neckarbrücke"), CellID: CellFixtures.Pointer("Neckarbrücke").ID, CellAccuracy: 0, PhotoAltitude: -10, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: "de", PhotoYear: 2790, PhotoMonth: 2, PhotoDay: 12, PhotoIso: 305, PhotoExposure: "", PhotoFNumber: 3.5, PhotoFocalLength: 28, PhotoQuality: 3, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000001), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000001, "no-jpeg", 20, "image"), }, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 3, 28, 14, 6, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 3, PhotoStack: 0, PhotoFaces: 0, }, "Photo02": { ID: 1000002, PhotoUID: "ps6sg6be2lvl0yh9", TakenAt: time.Date(1990, 3, 2, 0, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(1990, 3, 2, 0, 0, 0, 0, time.UTC), TakenSrc: "manual", PhotoType: "image", TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "London", PhotoName: "bridge1", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 1990, PhotoMonth: 3, PhotoDay: 2, PhotoIso: 290, PhotoExposure: "", PhotoFNumber: 10, PhotoFocalLength: 30, PhotoQuality: 3, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000002), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000002, "cake", 20, "image")}, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: 0, PhotoFaces: 1, }, "Photo03": { ID: 1000003, PhotoUID: "ps6sg6be2lvl0yh0", TakenAt: time.Date(1990, 4, 18, 1, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(1990, 4, 18, 1, 0, 0, 0, time.UTC), TakenSrc: "meta", PhotoType: "video", PhotoDuration: time.Hour * 2, TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "1990/04", PhotoName: "bridge2", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: -100, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 1990, PhotoMonth: 4, PhotoDay: 18, PhotoIso: 400, PhotoExposure: "", PhotoFNumber: 4.5, PhotoFocalLength: 84, PhotoQuality: 4, PhotoResolution: 45, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("bridge", 1000003), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000003, "cow", 20, "image"), LabelFixtures.PhotoLabel(1000003, "updatePhotoLabel", 20, "manual"), LabelFixtures.PhotoLabel(1000000, "landscape", 10, "location"), }, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: 0, PhotoFaces: 1, }, "Photo04": { ID: 1000004, PhotoUID: "ps6sg6be2lvl0y11", TakenAt: time.Date(2014, 7, 17, 15, 42, 12, 0, time.UTC), TakenAtLocal: time.Date(2014, 7, 17, 17, 42, 12, 0, time.UTC), TakenSrc: "meta", PhotoType: "image", TypeSrc: "", PhotoTitle: "Neckarbrücke", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "Germany", PhotoName: "bridge", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: PlaceFixtures.Pointer("Germany"), PlaceID: PlaceFixtures.Pointer("Germany").ID, PlaceSrc: "estimate", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: PlaceFixtures.Pointer("Germany").CountryCode(), PhotoYear: 2014, PhotoMonth: 7, PhotoDay: 10, PhotoIso: 401, PhotoExposure: "", PhotoFNumber: 3.2, PhotoFocalLength: 60, PhotoQuality: 3, PhotoResolution: 150, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000004), Keywords: []Keyword{ KeywordFixtures.Get("bridge"), KeywordFixtures.Get("flower"), }, Albums: []Album{ AlbumFixtures.Get("berlin-2019"), }, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000004, "batchdelete", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: 0, PhotoFaces: 3, }, "Photo05": { ID: 1000005, PhotoUID: "ps6sg6be2lvl0y12", TakenAt: time.Date(2015, 11, 1, 0, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(2015, 11, 1, 0, 0, 0, 0, time.UTC), TakenSrc: "name", PhotoType: "image", TypeSrc: "", PhotoTitle: "Reunion", TitleSrc: "name", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2015/11", PhotoName: "20151101_000000_51C501B5", OriginalName: "2015/11/reunion", PhotoFavorite: false, PhotoPrivate: true, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: -21.342636, PhotoLng: 55.466944, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2015, PhotoMonth: 11, PhotoDay: 0, PhotoIso: 199, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 3, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "123", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000005), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000005, "updateLabel", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 6, PhotoStack: 0, PhotoFaces: 2, }, "Photo06": { ID: 1000006, PhotoUID: "ps6sg6be2lvl0y13", TakenAt: time.Date(2016, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: "meta", PhotoType: "image", TypeSrc: "", PhotoTitle: "ToBeUpdated", TitleSrc: SrcMeta, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/11", PhotoName: "Photo06", OriginalName: "", PhotoFavorite: false, PhotoPrivate: true, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: -21.342636, PhotoLng: 55.466944, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 2016, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000006), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000006, "updatePhotoLabel", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 4, PhotoStack: 0, PhotoFaces: 0, }, "Photo07": { ID: 1000007, PhotoUID: "ps6sg6be2lvl0y14", TakenAt: time.Date(2016, 11, 12, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 11, 12, 9, 7, 18, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "ToBeUpdated", TitleSrc: SrcMeta, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/11", PhotoName: "Photo07", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 200, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 2016, PhotoMonth: 11, PhotoDay: 12, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000007), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000007, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: &editTime, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 4, PhotoStack: 0, PhotoFaces: 0, }, "Photo08": { ID: 1000008, PhotoUID: "ps6sg6be2lvl0y15", TakenAt: time.Date(2016, 11, 11, 8, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 11, 11, 8, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "Black beach", TitleSrc: SrcMeta, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/11", PhotoName: "Photo08", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcManual, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 898, PhotoLat: 19.681944, PhotoLng: -98.84659, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2016, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000008), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo09": { ID: 1000009, PhotoUID: "ps6sg6be2lvl0y16", TakenAt: time.Date(2016, 11, 11, 8, 6, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 11, 11, 8, 6, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/11", PhotoName: "Photo09", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 398, PhotoLat: 19.681944, PhotoLng: -98.846590, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2016, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000009), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo10": { ID: 1000010, PhotoUID: "ps6sg6be2lvl0y17", TakenAt: time.Date(2016, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 11, 11, 11, 7, 18, 0, time.UTC), TakenSrc: "manual", PhotoType: "video", PhotoDuration: time.Minute * 2, TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "Holiday", PhotoName: "Video", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: PlaceFixtures.Pointer("holidaypark"), PlaceID: PlaceFixtures.Pointer("holidaypark").ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("hassloch"), CellID: CellFixtures.Pointer("hassloch").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 49.31, PhotoLng: 8.30, PhotoCountry: PlaceFixtures.Pointer("holidaypark").CountryCode(), PhotoYear: 2016, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 10000010), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 9, PhotoStack: 0, PhotoFaces: 1, }, "Photo11": { ID: 1000011, PhotoUID: "ps6sg6be2lvl0y18", TakenAt: time.Date(2016, 12, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 12, 11, 9, 7, 18, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/12", PhotoName: "Photo11", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: PlaceFixtures.Pointer("emptyNameLongCity"), PlaceID: PlaceFixtures.Pointer("emptyNameLongCity").ID, PlaceSrc: "", Cell: CellFixtures.Pointer("emptyNameLongCity"), CellID: CellFixtures.Pointer("emptyNameLongCity").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: PlaceFixtures.Pointer("emptyNameLongCity").CountryCode(), PhotoYear: 2016, PhotoMonth: 12, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 10000011), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 11, PhotoStack: 0, PhotoFaces: 0, }, "Photo12": { ID: 1000012, PhotoUID: "ps6sg6be2lvl0y19", TakenAt: time.Date(2016, 01, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 01, 11, 9, 7, 18, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/01", PhotoName: "Photo12", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: PlaceFixtures.Pointer("emptyNameShortCity"), PlaceID: PlaceFixtures.Pointer("emptyNameShortCity").ID, PlaceSrc: "", Cell: CellFixtures.Pointer("emptyNameShortCity"), CellID: CellFixtures.Pointer("emptyNameShortCity").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: PlaceFixtures.Pointer("emptyNameShortCity").CountryCode(), PhotoYear: 2016, PhotoMonth: 1, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{}, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo13": { ID: 1000013, PhotoUID: "ps6sg6be2lvl0y20", TakenAt: time.Date(2016, 06, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2016, 06, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2016/06", PhotoName: "Photo13", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("veryLongLocName"), PlaceID: PlaceFixtures.Pointer("veryLongLocName").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("veryLongLocName"), CellID: CellFixtures.Pointer("veryLongLocName").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 19.681944, PhotoLng: -98.846590, PhotoCountry: PlaceFixtures.Pointer("veryLongLocName").CountryCode(), PhotoYear: 2016, PhotoMonth: 6, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{}, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000008, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo14": { ID: 1000014, PhotoUID: "ps6sg6be2lvl0y21", TakenAt: time.Date(2018, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2018, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "Title", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2018/11", PhotoName: "Photo14", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mediumLongLocName"), PlaceID: PlaceFixtures.Pointer("mediumLongLocName").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mediumLongLocName"), CellID: CellFixtures.Pointer("mediumLongLocName").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 19.681944, PhotoLng: -98.846590, PhotoCountry: PlaceFixtures.Pointer("mediumLongLocName").CountryCode(), PhotoYear: 2018, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{}, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(1000014, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo15": { ID: 1000015, PhotoUID: "ps6sg6be2lvl0y22", TakenAt: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcName, PhotoType: "image", TypeSrc: "", PhotoTitle: "TitleToBeSet", TitleSrc: SrcName, PhotoDescription: "photo description blacklist", DescriptionSrc: SrcMeta, PhotoPath: "1990", PhotoName: "missing", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: PlaceFixtures.Pointer("Germany"), PlaceID: PlaceFixtures.Pointer("Germany").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("Neckarbrücke"), CellID: CellFixtures.Pointer("Neckarbrücke").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: "de", PhotoYear: 2013, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("blacklist", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(10000015, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 6, PhotoStack: 0, PhotoFaces: 0, }, "Photo16": { ID: 1000016, PhotoUID: "ps6sg6be2lvl0y23", TakenAt: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "ForDeletion", TitleSrc: SrcName, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "1990", PhotoName: "Photo16", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: true, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: UnknownCountry.ID, PhotoYear: 2013, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{LabelFixtures.PhotoLabel(10000015, "landscape", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo17": { ID: 1000017, PhotoUID: "ps6sg6be2lvl0y24", TakenAt: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "Quality1FavoriteTrue", TitleSrc: SrcName, PhotoDescription: "", DescriptionSrc: SrcAuto, PhotoPath: "1990/04", PhotoName: "Quality1FavoriteTrue", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2013, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000015, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 6, PhotoStack: 0, PhotoFaces: 0, }, "Photo18": { ID: 1000018, PhotoUID: "ps6sg6be2lvl0y25", TakenAt: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2013, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "ArchivedChroma0", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "Archived", PhotoName: "Photo18", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2013, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 0, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: &deleteTime, PhotoColor: 9, PhotoStack: 0, PhotoFaces: 0, }, "Photo19": { ID: 1000019, UUID: "123e4567-e89b-12d3-a456-426614174000", PhotoUID: "ps6sg6bexxvl0yh0", TakenAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "1990/04", PhotoName: "Photo19", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 2008, PhotoMonth: 1, PhotoDay: 1, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: -1, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("bridge", 1000019), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{}, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: 0, PhotoFaces: 0, }, "Photo20": { ID: 1000020, PhotoUID: "ps6sg6bexxvl0y20", TakenAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), TakenAtLocal: time.Time{}, TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "1990/04", PhotoName: "Photo20", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: "", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownPlace.CountryCode(), PhotoYear: 2008, PhotoMonth: 1, PhotoDay: 1, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 1, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("bridge", 1000019), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{}, CreatedAt: time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2008, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 1, PhotoStack: 0, PhotoFaces: 0, }, "Photo21": { ID: 1000021, PhotoUID: "ps6sg6bexxvl0y21", TakenAt: time.Date(2018, 1, 1, 0, 0, 0, 0, time.UTC), TakenAtLocal: time.Time{}, TakenSrc: "", PhotoType: "video", TypeSrc: "", PhotoTitle: "", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2018/01", PhotoName: "20180101_130410_418COOO0", OriginalName: "my-videos/IMG_88888", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "Europe/Berlin", Place: PlaceFixtures.Pointer("Germany"), PlaceID: PlaceFixtures.Pointer("Germany").ID, PlaceSrc: "estimate", Cell: &UnknownLocation, CellID: UnknownLocation.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: PlaceFixtures.Pointer("Germany").CountryCode(), PhotoYear: 2018, PhotoMonth: 1, PhotoDay: 1, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 1, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("bridge", 1000019), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{}, CreatedAt: time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "Photo22": { ID: 1000022, PhotoUID: "ps6sg6bexxvl0y22", TakenAt: time.Date(2001, 1, 1, 7, 0, 0, 0, time.UTC), TakenAtLocal: time.Date(2001, 1, 1, 7, 0, 0, 0, time.UTC), TakenSrc: "", PhotoType: "image", TypeSrc: "", PhotoTitle: "Lake / 2001", TitleSrc: "", PhotoDescription: "", DescriptionSrc: "", PhotoPath: "Mexico-With-Family", PhotoName: "Photo22", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2001, PhotoMonth: 1, PhotoDay: 1, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 1, PhotoResolution: 2, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{}, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{}, CreatedAt: time.Date(2010, 1, 1, 8, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2010, 1, 1, 8, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "Photo23": { ID: 1000023, PhotoUID: "ps6sg6be2lvl0y43", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "ForMerge", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2020/vacation", PhotoName: "PhotoMerge", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "Photo24": { ID: 1000024, PhotoUID: "ps6sg6be2lvl0y44", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "raw", TypeSrc: "", PhotoTitle: "ForMerge2", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2020/vacation", PhotoName: "PhotoMerge2", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "Photo25": { ID: 1000025, PhotoUID: "ps6sg6be2lvl0y45", TakenAt: time.Date(2007, 1, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2007, 1, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "photowitheditedatdate", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2007/12", PhotoName: "PhotoWithEditedAt", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: true, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 0, PhotoMonth: 0, PhotoDay: 4, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2007, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2007, 3, 1, 0, 0, 0, 0, time.UTC), EditedAt: &editTime, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: IsUnstacked, PhotoFaces: 0, }, "Photo26": { ID: 1000026, PhotoUID: "ps6sg6be2lvl0y90", TakenAt: time.Date(2007, 1, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2007, 1, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "phototobebatchapproved", TitleSrc: SrcAuto, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2007/12", PhotoName: "PhotoWithEditedAt_2", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: true, TimeZone: "America/Mexico_City", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 1.234, PhotoLng: 4.321, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2007, PhotoMonth: 1, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 1, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: IsUnstacked, PhotoFaces: 0, }, "Photo27": { ID: 1000027, PhotoUID: "ps6sg6be2lvl0y50", TakenAt: time.Date(2000, 12, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2000, 12, 11, 4, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "live", TypeSrc: "", PhotoTitle: "phototobebatchapproved2", TitleSrc: SrcName, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000/12", PhotoName: "PhotoToBeBatchApproved2", OriginalName: "", PhotoFavorite: true, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico", Place: PlaceFixtures.Pointer("mexico"), PlaceID: PlaceFixtures.Pointer("mexico").ID, PlaceSrc: SrcMeta, Cell: CellFixtures.Pointer("mexico"), CellID: CellFixtures.Pointer("mexico").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 19.682, PhotoLng: -98.84, PhotoCountry: PlaceFixtures.Pointer("mexico").CountryCode(), PhotoYear: 2000, PhotoMonth: 12, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFNumber: 0, PhotoFocalLength: 0, PhotoQuality: 1, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 12, PhotoStack: IsStackable, PhotoFaces: 3, }, "PhotoTimeZone": { ID: 1000028, PhotoUID: "ps6sg6b3ki00x54g", TakenAt: time.Date(2015, 5, 17, 23, 2, 46, 0, time.UTC), TakenAtLocal: time.Date(2015, 5, 17, 23, 2, 46, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "Estimate / 2015", TitleSrc: SrcName, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2015/05", PhotoName: "Estimate", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: SrcAuto, Cell: nil, CellID: UnknownPlace.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownCountry.ID, PhotoYear: 2015, PhotoMonth: 5, PhotoDay: 17, PhotoIso: 100, PhotoExposure: "1/50", PhotoFNumber: 2.6, PhotoFocalLength: 3, PhotoQuality: 3, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{ PhotoID: 1000028, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: nil, EstimatedAt: nil, DeletedAt: nil, PhotoColor: 12, PhotoStack: IsStackable, PhotoFaces: 0, }, "VideoTimeZone": { ID: 1000029, PhotoUID: "ps6sg6byk7wrbk2u", TakenAt: time.Date(2015, 5, 17, 17, 48, 46, 0, time.UTC), TakenAtLocal: time.Date(2015, 5, 17, 17, 48, 46, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "video", TypeSrc: "", PhotoTitle: "Estimate / 2015", TitleSrc: SrcName, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2015/05", PhotoName: "Estimate", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "UTC", Place: &UnknownPlace, PlaceID: UnknownPlace.ID, PlaceSrc: SrcAuto, Cell: nil, CellID: UnknownPlace.ID, CellAccuracy: 0, PhotoAltitude: 0, PhotoLat: 0, PhotoLng: 0, PhotoCountry: UnknownCountry.ID, PhotoYear: 2015, PhotoMonth: 5, PhotoDay: 17, PhotoIso: 100, PhotoExposure: "", PhotoFNumber: 2.6, PhotoFocalLength: 3, PhotoQuality: 3, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: &Details{ PhotoID: 1000029, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000018, "landscape", 20, "image"), LabelFixtures.PhotoLabel(10000018, "likeLabel", 20, "image")}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: nil, EstimatedAt: nil, DeletedAt: nil, PhotoColor: 12, PhotoStack: IsStackable, PhotoFaces: 0, }, "%photo28": { ID: 10000029, PhotoUID: "ps6sg6byk7wrbk21", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "%Salad", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "%abc/%folderx", PhotoName: "%photo28", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("%toss"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(10000029, "%tennis", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo29%": { ID: 1000030, PhotoUID: "ps6sg6byk7wrbk22", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "cloud%", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "abc%/folde%", PhotoName: "photo29%", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("magic%"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000030, "cell%", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo%30": { ID: 1000031, PhotoUID: "ps6sg6byk7wrbk23", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "hon%ey", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "ab%c/fol%de", PhotoName: "photo%30", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("ca%t"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000031, "chem%stry", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "&photo31": { ID: 1000032, PhotoUID: "ps6sg6byk7wrbk24", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "&dad", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "&abc/&folde", PhotoName: "&photo31", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("&hogwarts"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "&friendship", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo&32": { ID: 1000033, PhotoUID: "ps6sg6byk7wrbk25", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "leader&ship", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "tes&r/lo&c", PhotoName: "photo&32", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("love&trust"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "construction&failure", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo33&": { ID: 1000034, PhotoUID: "ps6sg6byk7wrbk26", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "mom&", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2020&/vacation&", PhotoName: "photo33&", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("countryside&"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "goal&", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "'photo34": { ID: 1000035, PhotoUID: "ps6sg6byk7wrbk27", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "'poetry'", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "'2020/'vacation", PhotoName: "'photo34", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("'grandfather"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "'activity", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo'35": { ID: 1000036, PhotoUID: "ps6sg6byk7wrbk28", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "amaz'ing", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "20'20/vacat'ion", PhotoName: "photo'35", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 12, PhotoDay: 17, PhotoIso: 5, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("apple-iphone-se"), CameraID: CameraFixtures.Pointer("apple-iphone-se").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("4.15mm-f/2.2"), LensID: LensFixtures.Pointer("4.15mm-f/2.2").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("grandma's"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "funera'l", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo36'": { ID: 1000037, PhotoUID: "ps6sg6byk7wrbk29", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "pollution'", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2020'/vacation'", PhotoName: "photo36'", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("apple-iphone-7"), CameraID: CameraFixtures.Pointer("apple-iphone-7").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("cheescake'"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "technology'", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "*photo37": { ID: 1000038, PhotoUID: "ps6sg6byk7wrbk30", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "*area", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "*2020/*vacation", PhotoName: "*photo37", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("*rating"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "*tea", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo*38": { ID: 1000039, PhotoUID: "ps6sg6byk7wrbk31", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "farm*animal", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "202*3/vac*ation", PhotoName: "photo*38", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("three*four"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "soup*menu", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo39*": { ID: 1000040, PhotoUID: "ps6sg6byk7wrbk32", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "engine*", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2023*/vacatio*", PhotoName: "photo39*", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("tree*"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "proposal*", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "|photo40": { ID: 1000041, PhotoUID: "ps6sg6byk7wrbk33", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "|football", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "|202/|vacation", PhotoName: "|photo40", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("|mystery"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "|college", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo|41": { ID: 1000042, PhotoUID: "ps6sg6byk7wrbk34", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "pain|ting", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "20|22/vacat|ion", PhotoName: "photo|41", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("run|stay"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "potato|couch", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo42|": { ID: 1000043, PhotoUID: "ps6sg6byk7wrbk35", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "supermarket|", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2022|/vacation|", PhotoName: "photo42|", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("pillow|"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "mall|", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "43photo": { ID: 1000044, PhotoUID: "ps6sg6byk7wrbk36", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "123community", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000/holiday", PhotoName: "43photo", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("1dish"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "2020-world", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "pho44to": { ID: 1000045, PhotoUID: "ps6sg6byk7wrbk37", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "cli44mate", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000/02", PhotoName: "pho44to", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("nothing4you"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "sport-2021-event", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo45": { ID: 1000046, PhotoUID: "ps6sg6byk7wrbk38", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "guest456", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000/02", PhotoName: "photo45", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("joyx2"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "oven-3000", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "\"photo46": { ID: 1000047, PhotoUID: "ps6sg6byk7wrbk39", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "\"member", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "\"2000/\"02", PhotoName: "\"photo46", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("\"electronics"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "\"king", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo\"47": { ID: 1000048, PhotoUID: "ps6sg6byk7wrbk40", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "sol\"ution", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "20\"00/0\"2", PhotoName: "photo\"47", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("sal\"mon"), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "town\"ship", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo48\"": { ID: 1000049, PhotoUID: "ps6sg6byk7wrbk41", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "desk\"", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000\"/02\"", PhotoName: "photo48\"", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("fish\""), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "ladder\"", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, " photo49": { ID: 1000050, PhotoUID: "ps6sg6byk7wrbk42", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: " chair", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: " 2000/ 02", PhotoName: " photo49", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("fish\""), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "ladder\"", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo 50": { ID: 1000051, PhotoUID: "ps6sg6byk7wrbk43", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "air craft", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "20 00/ 0 2", PhotoName: "photo 50", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("fish\""), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "ladder\"", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo51 ": { ID: 1000052, PhotoUID: "ps6sg6byk7wrbk44", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "image", TypeSrc: "", PhotoTitle: "love ", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2000 /02 ", PhotoName: "photo51 ", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{ KeywordFixtures.Get("fish\""), }, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{ LabelFixtures.PhotoLabel(1000032, "ladder\"", 20, "image"), }, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, "photo52": { ID: 1000053, PhotoUID: "ps6sg6byk7wrbk45", TakenAt: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenAtLocal: time.Date(2020, 11, 11, 9, 7, 18, 0, time.UTC), TakenSrc: SrcMeta, PhotoType: "animated", TypeSrc: "", PhotoTitle: "My pretty animated GIF", TitleSrc: SrcManual, PhotoDescription: "", DescriptionSrc: "", PhotoPath: "2020/GIF", PhotoName: "photo52", OriginalName: "", PhotoFavorite: false, PhotoPrivate: false, PhotoScan: false, PhotoPanorama: false, TimeZone: "America/Mexico_City", Place: CellFixtures.Pointer("caravan park").Place, PlaceID: CellFixtures.Pointer("caravan park").Place.ID, PlaceSrc: "meta", Cell: CellFixtures.Pointer("caravan park"), CellID: CellFixtures.Pointer("caravan park").ID, CellAccuracy: 0, PhotoAltitude: 3, PhotoLat: 48.519234, PhotoLng: 9.057997, PhotoCountry: CellFixtures.Pointer("caravan park").Place.CountryCode(), PhotoYear: 2020, PhotoMonth: 11, PhotoDay: 11, PhotoIso: 0, PhotoExposure: "", PhotoFocalLength: 0, PhotoFNumber: 0, PhotoQuality: 5, PhotoResolution: 0, Camera: CameraFixtures.Pointer("canon-eos-6d"), CameraID: CameraFixtures.Pointer("canon-eos-6d").ID, CameraSerial: "", CameraSrc: "", Lens: LensFixtures.Pointer("lens-f-380"), LensID: LensFixtures.Pointer("lens-f-380").ID, Details: DetailsFixtures.Pointer("lake", 1000015), Keywords: []Keyword{}, Albums: []Album{}, Files: []File{}, Labels: []PhotoLabel{}, CreatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), UpdatedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), EditedAt: nil, CheckedAt: &checkedTime, DeletedAt: nil, PhotoColor: 14, PhotoStack: 0, PhotoFaces: 0, }, }
var PhotoKeywordFixtures = PhotoKeywordMap{
"1": {
PhotoID: 1000004,
KeywordID: 1000000,
},
"2": {
PhotoID: 1000001,
KeywordID: 1000001,
},
"3": {
PhotoID: 1000000,
KeywordID: 1000000,
},
"4": {
PhotoID: 1000003,
KeywordID: 1000000,
},
"5": {
PhotoID: 1000003,
KeywordID: 1000003,
},
"6": {
PhotoID: 1000023,
KeywordID: 1000003,
},
"7": {
PhotoID: 1000027,
KeywordID: 1000004,
},
"8": {
PhotoID: 1000030,
KeywordID: 1000007,
},
"9": {
PhotoID: 10000029,
KeywordID: 10000005,
},
"10": {
PhotoID: 1000031,
KeywordID: 10000006,
},
"11": {
PhotoID: 1000032,
KeywordID: 10000008,
},
"12": {
PhotoID: 1000033,
KeywordID: 10000009,
},
"13": {
PhotoID: 1000034,
KeywordID: 10000010,
},
"14": {
PhotoID: 1000035,
KeywordID: 10000011,
},
"15": {
PhotoID: 1000036,
KeywordID: 10000012,
},
"16": {
PhotoID: 1000037,
KeywordID: 10000013,
},
"17": {
PhotoID: 1000038,
KeywordID: 10000014,
},
"18": {
PhotoID: 1000039,
KeywordID: 10000015,
},
"19": {
PhotoID: 1000040,
KeywordID: 10000016,
},
"20": {
PhotoID: 1000041,
KeywordID: 10000017,
},
"21": {
PhotoID: 1000042,
KeywordID: 10000018,
},
"22": {
PhotoID: 1000043,
KeywordID: 10000019,
},
"23": {
PhotoID: 1000044,
KeywordID: 10000020,
},
"24": {
PhotoID: 1000045,
KeywordID: 10000021,
},
"25": {
PhotoID: 1000046,
KeywordID: 10000022,
},
"26": {
PhotoID: 1000047,
KeywordID: 10000023,
},
"27": {
PhotoID: 1000048,
KeywordID: 10000024,
},
"28": {
PhotoID: 1000049,
KeywordID: 10000025,
},
"29": {
PhotoID: 1000045,
KeywordID: 10000018,
},
"30": {
PhotoID: 1000045,
KeywordID: 10000018,
},
"31": {
PhotoID: 1000036,
KeywordID: 10000015,
},
"32": {
PhotoID: 1000036,
KeywordID: 1000001,
},
}
var PlaceFixtures = PlacesMap{ "mexico": { ID: "mx:VvfNBpFegSCr", PlaceLabel: "Teotihuacán, State of Mexico, Mexico", PlaceCity: "Teotihuacán", PlaceState: "State of Mexico", PlaceCountry: "mx", PlaceKeywords: "ancient, pyramid", PlaceFavorite: false, PhotoCount: 1, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "zinkwazi": { ID: "za:Rc1K7dTWRzBD", PlaceLabel: "KwaDukuza, KwaZulu-Natal, South Africa", PlaceCity: "KwaDukuza", PlaceState: "KwaZulu-Natal", PlaceCountry: "za", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "holidaypark": { ID: "de:HFqPHxa2Hsol", PlaceLabel: "Neustadt an der Weinstraße, Rheinland-Pfalz, Germany", PlaceDistrict: "Hambach an der Weinstraße", PlaceCity: "Neustadt an der Weinstraße", PlaceState: "Rheinland-Pfalz", PlaceCountry: "de", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "emptyNameLongCity": { ID: s2.TokenPrefix + "1ef744d1e281", PlaceLabel: "labelEmptyNameLongCity", PlaceCity: "longlonglonglonglongcity", PlaceState: "Rheinland-Pfalz", PlaceCountry: "de", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "emptyNameShortCity": { ID: s2.TokenPrefix + "1ef744d1e282", PlaceLabel: "labelEmptyNameShortCity", PlaceCity: "shortcity", PlaceState: "Rheinland-Pfalz", PlaceCountry: "de", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "veryLongLocName": { ID: s2.TokenPrefix + "1ef744d1e283", PlaceLabel: "labelVeryLongLocName", PlaceCity: "Mainz", PlaceState: "Rheinland-Pfalz", PlaceCountry: "de", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "mediumLongLocName": { ID: s2.TokenPrefix + "1ef744d1e284", PlaceLabel: "labelMediumLongLocName", PlaceCity: "New york", PlaceState: "New york", PlaceCountry: "us", PlaceKeywords: "", PlaceFavorite: true, PhotoCount: 2, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, "Germany": { ID: s2.TokenPrefix + "1ef744d1e285", PlaceLabel: "Germany", PlaceCity: "", PlaceState: "", PlaceCountry: "de", PlaceKeywords: "", PlaceFavorite: false, PhotoCount: 1, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, }
var PreviewToken = NewStringMap(Strings{})
var QualityBlacklist = map[string]bool{ "screenshot": true, "screenshots": true, "info": true, }
var ReactionFixtures = ReactionMap{ "SubjectJohnLike": Reaction{ UID: SubjectFixtures.Get("john-doe").SubjUID, UserUID: UserFixtures.Get("alice").UserUID, Reaction: react.Like.String(), Reacted: 1, ReactedAt: TimePointer(), }, "PhotoAliceLove": Reaction{ UID: PhotoFixtures.Get("Photo01").PhotoUID, UserUID: UserFixtures.Pointer("alice").UserUID, Reaction: react.Love.String(), Reacted: 3, ReactedAt: TimePointer(), }, "PhotoBobLove": Reaction{ UID: PhotoFixtures.Get("Photo01").PhotoUID, UserUID: UserFixtures.Pointer("bob").UserUID, Reaction: react.Love.String(), Reacted: 1, ReactedAt: TimePointer(), }, }
var ServiceFixtureWebdavDummy = ServiceFixtures["dummy-webdav"]
var ServiceFixtureWebdavDummy2 = ServiceFixtures["dummy-webdav2"]
var ServiceFixtures = ServiceMap{ "dummy-webdav": { ID: 1000000, AccName: "Test Account", AccOwner: "", AccURL: "http://dummy-webdav/", AccType: "webdav", AccKey: "", AccUser: "admin", AccPass: "photoprism", AccError: "", AccErrors: 0, AccShare: true, AccSync: true, RetryLimit: 3, SharePath: "/Photos", ShareSize: "", ShareExpires: 1, SyncPath: "/Photos", SyncStatus: "refresh", SyncInterval: 3600, SyncDate: sql.NullTime{Time: TimeStamp()}, SyncUpload: true, SyncDownload: true, SyncFilenames: true, SyncRaw: true, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "dummy-webdav2": { ID: 1000001, AccName: "Test Account2", AccOwner: "", AccURL: "http://dummy-webdav/", AccType: "webdav", AccKey: "", AccUser: "admin", AccPass: "photoprism", AccError: "", AccErrors: 0, AccShare: false, AccSync: false, RetryLimit: 3, SharePath: "/Photos", ShareSize: "", ShareExpires: 0, SyncPath: "/Photos", SyncStatus: "refresh", SyncInterval: 3600, SyncDate: sql.NullTime{Time: TimeStamp()}, SyncUpload: true, SyncDownload: true, SyncFilenames: true, SyncRaw: true, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, }
var SessionCacheDuration = 15 * time.Minute
SessionCacheDuration specifies how long sessions are cached.
var SessionFixtures = SessionMap{ "alice": { ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac0"), RefID: "sessxkkcabcd", SessTimeout: unix.Day * 3, SessExpires: unix.Now() + unix.Week, GrantType: authn.GrantPassword.String(), UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, // contains filtered or unexported fields }, "alice_token": { ID: rnd.SessionID("bb8658e779403ae524a188712470060f050054324a8b104e"), RefID: "sess34q3hael", SessTimeout: -1, SessExpires: unix.Now() + unix.Day, AuthScope: clean.Scope("*"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantCLI.String(), ClientName: "alice_token", LastActive: -1, UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, // contains filtered or unexported fields }, "alice_token_personal": { ID: rnd.SessionID("DIbS8T-uyGMe1-R3fmTv-vVaR35"), RefID: "sess6ey1ykya", SessTimeout: -1, SessExpires: unix.Now() + unix.Day, AuthScope: clean.Scope("*"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantPassword.String(), ClientName: "alice_token_personal", LastActive: -1, UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, // contains filtered or unexported fields }, "alice_token_webdav": { ID: rnd.SessionID("5d0rGx-EvsDnV-DcKtYY-HT1aWL"), RefID: "sesshjtgx8qt", SessTimeout: -1, SessExpires: unix.Now() + unix.Day, AuthScope: clean.Scope("webdav"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantPassword.String(), ClientName: "alice_token_webdav", LastActive: -1, UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, // contains filtered or unexported fields }, "alice_token_scope": { ID: rnd.SessionID("778f0f7d80579a072836c65b786145d6e0127505194cc51e"), RefID: "sessjr0ge18d", SessTimeout: 0, SessExpires: unix.Now() + unix.Day, AuthScope: clean.Scope("metrics photos albums videos"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantPassword.String(), ClientName: "alice_token_scope", UserUID: UserFixtures.Pointer("alice").UserUID, UserName: UserFixtures.Pointer("alice").UserName, PreviewToken: "cdd3r0lr", DownloadToken: "64ydcbom", // contains filtered or unexported fields }, "bob": { ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac1"), RefID: "sessxkkcabce", SessTimeout: unix.Day * 3, SessExpires: unix.Now() + unix.Week, GrantType: authn.GrantPassword.String(), UserUID: UserFixtures.Pointer("bob").UserUID, UserName: UserFixtures.Pointer("bob").UserName, // contains filtered or unexported fields }, "unauthorized": { ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac2"), RefID: "sessxkkcabcf", SessTimeout: unix.Day * 3, SessExpires: unix.Now() + unix.Week, GrantType: authn.GrantImplicit.String(), UserUID: UserFixtures.Pointer("unauthorized").UserUID, UserName: UserFixtures.Pointer("unauthorized").UserName, // contains filtered or unexported fields }, "visitor": { ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac3"), RefID: "sessxkkcabcg", SessTimeout: unix.Day * 3, SessExpires: unix.Now() + unix.Week, UserUID: Visitor.UserUID, UserName: Visitor.UserName, GrantType: authn.GrantShareToken.String(), DataJSON: []byte(`{"tokens":["1jxf3jfn2k"],"shares":["as6sg6bxpogaaba8"]}`), // contains filtered or unexported fields }, "visitor_token_metrics": { ID: rnd.SessionID("4ebe1048a7384e1e6af2930b5b6f29795ffab691df47a488"), RefID: "sessaae5cxun", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("metrics"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantShareToken.String(), ClientName: "visitor_token_metrics", UserUID: Visitor.UserUID, UserName: Visitor.UserName, // contains filtered or unexported fields }, "friend": { ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac4"), RefID: "sessxkkcabch", SessTimeout: unix.Day * 3, SessExpires: unix.Now() + unix.Week, UserUID: UserFixtures.Pointer("friend").UserUID, UserName: UserFixtures.Pointer("friend").UserName, // contains filtered or unexported fields }, "client_metrics": { ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212345"), RefID: "sessgh612345", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("metrics"), AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), GrantType: authn.GrantClientCredentials.String(), ClientUID: ClientFixtures.Get("metrics").ClientUID, ClientName: ClientFixtures.Get("metrics").ClientName, UserUID: "", UserName: "", PreviewToken: "py212345", DownloadToken: "vgl12345", // contains filtered or unexported fields }, "token_metrics": { ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368208a9b"), RefID: "sessgh6gjuo1", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("metrics"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantCLI.String(), ClientName: "token_metrics", UserUID: "", UserName: "", PreviewToken: "py2xrgr3", DownloadToken: "vgln2ffb", // contains filtered or unexported fields }, "token_settings": { ID: rnd.SessionID("3f9684f7d3dd3d5b84edd43289c7fb5ca32ee73bd0233237"), RefID: "sessyugn54so", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("settings"), AuthProvider: authn.ProviderAccessToken.String(), AuthMethod: authn.MethodDefault.String(), GrantType: authn.GrantCLI.String(), ClientName: "token_settings", UserUID: "", UserName: "", PreviewToken: "py2xrgr3", DownloadToken: "vgln2ffb", // contains filtered or unexported fields }, "client_analytics": { ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212123"), RefID: "sessgh6123yt", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("statistics"), AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodOAuth2.String(), GrantType: authn.GrantCLI.String(), ClientUID: ClientFixtures.Get("analytics").ClientUID, ClientName: ClientFixtures.Get("analytics").ClientName, UserUID: "", UserName: "", PreviewToken: "py2123yt", DownloadToken: "vgl123yt", // contains filtered or unexported fields }, "client_invalid": { ID: rnd.SessionID("1831986451da7acf34690b703ff528f67bcf255e005270e9"), RefID: "sessgh6123uy", SessTimeout: 0, SessExpires: unix.Now() + unix.Week, AuthScope: clean.Scope("undefined"), AuthProvider: authn.ProviderClient.String(), AuthMethod: authn.MethodUndefined.String(), GrantType: authn.GrantCLI.String(), ClientUID: ClientFixtures.Get("invalid_method").ClientUID, ClientName: ClientFixtures.Get("invalid_method").ClientName, UserUID: "", UserName: "", PreviewToken: "py2123uy", DownloadToken: "vgl123uy", // contains filtered or unexported fields }, }
var SrcPriority = Priorities{ SrcAuto: 1, SrcDefault: 1, SrcEstimate: 2, SrcName: 4, SrcYaml: 8, SrcLDAP: 8, SrcLocation: 8, SrcMarker: 8, SrcImage: 8, SrcKeyword: 16, SrcMeta: 16, SrcXmp: 32, SrcManual: 64, SrcAdmin: 128, }
SrcPriority maps source priorities.
var SubjNames = NewStringMap(nil)
SubjNames is a uid/name (reverse) lookup map
var SubjectFixtures = SubjectMap{ "john-doe": Subject{ SubjUID: "js6sg6b1qekk9jx8", SubjSlug: "john-doe", SubjName: "John Doe", SubjType: SubjPerson, SubjSrc: SrcManual, SubjFavorite: true, SubjPrivate: false, SubjExcluded: false, SubjBio: "Subject Description", SubjNotes: "Short Note", FileCount: 1, PhotoCount: 1, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "joe-biden": Subject{ SubjUID: "js6sg6b2h8njw0sx", SubjSlug: "joe-biden", SubjName: "Joe Biden", SubjType: SubjPerson, SubjSrc: SrcMarker, SubjFavorite: false, SubjPrivate: false, SubjExcluded: false, SubjBio: "", SubjNotes: "", FileCount: 1, PhotoCount: 1, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "dangling": Subject{ SubjUID: "js6sg6b1h1njaaaa", SubjSlug: "dangling-subject", SubjName: "Dangling Subject", SubjAlias: "Powell", SubjType: SubjPerson, SubjSrc: SrcMarker, SubjFavorite: false, SubjPrivate: false, SubjExcluded: false, SubjBio: "", SubjNotes: "", Thumb: "2cad9168fa6acc5c5c2965ddf6ec465ca42fd818", FileCount: 0, PhotoCount: 0, CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "jane-doe": Subject{ SubjUID: "js6sg6b1h1njaaab", SubjSlug: "jane-doe", SubjName: "Jane Doe", SubjType: SubjPerson, SubjSrc: SrcMarker, SubjFavorite: false, SubjPrivate: false, SubjExcluded: false, SubjBio: "", SubjNotes: "", FileCount: 3, PhotoCount: 2, CreatedAt: TimeStamp().AddDate(0, 0, 1), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "actress-1": Subject{ SubjUID: "js6sg6b1h1njaaac", SubjSlug: "actress-a", SubjName: "Actress A", SubjType: SubjPerson, SubjSrc: SrcMarker, SubjFavorite: false, SubjPrivate: false, SubjNotes: "", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, "actor-1": Subject{ SubjUID: "js6sg6b1h1njaaad", SubjSlug: "actor-a", SubjName: "Actor A", SubjType: SubjPerson, SubjSrc: SrcMarker, SubjFavorite: false, SubjPrivate: false, SubjNotes: "", CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), DeletedAt: nil, }, }
var UnknownCamera = Camera{ CameraSlug: UnknownID, CameraName: "Unknown", CameraMake: "", CameraModel: "Unknown", }
var UnknownCountry = Country{ ID: UnknownID, CountryName: maps.CountryNames[UnknownID], CountrySlug: UnknownID, }
UnknownCountry is defined here to use it as a default
var UnknownFace = Face{ ID: UnknownID, FaceSrc: SrcDefault, MatchedAt: TimePointer(), SubjUID: "", EmbeddingJSON: []byte{}, }
UnknownFace can be used as a placeholder for unknown faces.
var UnknownLens = Lens{ LensSlug: UnknownID, LensName: "Unknown", LensMake: "", LensModel: "Unknown", }
var UnknownLocation = Cell{ ID: UnknownID, Place: &UnknownPlace, PlaceID: UnknownID, CellName: "", CellStreet: "", CellPostcode: "", CellCategory: "", }
UnknownLocation is PhotoPrism's default location.
var UnknownMarker = NewMarker(File{FileUID: "-", FileHash: "-"}, crop.Area{}, "", SrcDefault, MarkerUnknown, 0, 0)
UnknownMarker can be used as a default for unknown markers.
var UnknownPlace = Place{ ID: UnknownID, PlaceLabel: "Unknown", PlaceDistrict: "Unknown", PlaceCity: "Unknown", PlaceState: "Unknown", PlaceCountry: UnknownID, PlaceKeywords: "", PlaceFavorite: false, PhotoCount: -1, }
UnknownPlace is PhotoPrism's default place.
var UnknownUser = User{ ID: -1, UserUID: "u000000000000001", UserName: "", AuthProvider: authn.ProviderNone.String(), UserRole: acl.RoleNone.String(), CanLogin: false, WebDAV: false, CanInvite: false, DisplayName: UnknownDisplayName, InviteToken: "", PreviewToken: "", DownloadToken: "", }
UnknownUser is an anonymous, public user without own account.
var UpdateFaces = atomic.Bool{}
var UserFixtures = UserMap{ "alice": { ID: 5, UserUID: "uqxetse3cy5eo9z2", UserName: "alice", DisplayName: "Alice", UserEmail: "alice@example.com", UserRole: acl.RoleAdmin.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.MethodUndefined.String(), SuperAdmin: true, CanLogin: true, WebDAV: true, CanInvite: true, InviteToken: GenerateToken(), UserSettings: &UserSettings{ UITheme: "", MapsStyle: "", MapsAnimate: -1, UILanguage: "", UITimeZone: "", }, UserDetails: &UserDetails{ NickName: "Lys", UserGender: GenderFemale, }, }, "bob": { ID: 7, UserUID: "uqxc08w3d0ej2283", UserName: "bob", DisplayName: "Robert Rich", UserEmail: "bob@example.com", UserRole: acl.RoleAdmin.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.MethodDefault.String(), SuperAdmin: false, CanLogin: true, WebDAV: true, CanInvite: false, UserSettings: &UserSettings{ UITheme: "grayscale", MapsStyle: "topographique", MapsAnimate: 6250, UILanguage: "pt_BR", UITimeZone: "", }, UserDetails: &UserDetails{ NickName: "Bob", UserGender: GenderMale, BirthDay: 22, BirthMonth: 1, BirthYear: 1981, }, }, "friend": { ID: 8, UserUID: "uqxqg7i1kperxvu7", UserName: "friend", UserEmail: "friend@example.com", UserRole: acl.RoleAdmin.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.MethodDefault.String(), SuperAdmin: false, DisplayName: "Guy Friend", CanLogin: true, WebDAV: false, CanInvite: false, UserSettings: &UserSettings{ UITheme: "gemstone", MapsStyle: "hybrid", MapsAnimate: 0, UILanguage: "es_US", UITimeZone: "America/Los_Angeles", }, UserDetails: &UserDetails{ UserGender: GenderOther, }, }, "deleted": { ID: 10000008, UserUID: "uqxqg7i1kperxvu8", UserName: "deleted", UserEmail: "", DisplayName: "Deleted User", SuperAdmin: false, UserRole: acl.RoleVisitor.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.MethodDefault.String(), CanLogin: false, WebDAV: true, CanInvite: false, DeletedAt: TimePointer(), UserSettings: &UserSettings{ UITheme: "", MapsStyle: "", MapsAnimate: 0, UILanguage: "de", UITimeZone: "", }, }, "unauthorized": { ID: 10000009, UserUID: "uriku0138hqql4bz", UserName: "jens.mander", UserEmail: "jens.mander@microsoft.com", UserRole: acl.RoleNone.String(), AuthProvider: authn.ProviderNone.String(), AuthMethod: authn.MethodUndefined.String(), SuperAdmin: false, DisplayName: "Jens Mander", CanLogin: true, WebDAV: true, CanInvite: false, UserSettings: &UserSettings{ UITheme: "", MapsStyle: "", MapsAnimate: 0, UILanguage: "de", UITimeZone: "", }, UserDetails: &UserDetails{ UserGender: GenderMale, }, }, "fowler": { ID: 10000023, UserUID: "urinotv3d6jedvlm", UserName: "fowler", DisplayName: "Martin Fowler", UserEmail: "martin@fowler.org", UserRole: acl.RoleAdmin.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.MethodDefault.String(), SuperAdmin: false, CanLogin: true, WebDAV: true, CanInvite: true, InviteToken: GenerateToken(), UserSettings: &UserSettings{ UITheme: "custom", MapsStyle: "invalid", MapsAnimate: -1, UILanguage: "en", UITimeZone: "UTC", }, }, "jane": { ID: 10000024, UserUID: "usamyuogp49vd4lh", UserName: "jane", DisplayName: "Jane Dow", UserEmail: "qa@example.com", UserRole: acl.RoleAdmin.String(), AuthProvider: authn.ProviderLocal.String(), AuthMethod: authn.Method2FA.String(), SuperAdmin: false, CanLogin: true, WebDAV: true, CanInvite: true, InviteToken: GenerateToken(), UserSettings: &UserSettings{ UITheme: "default", MapsStyle: "hybrid", MapsAnimate: 6250, UILanguage: "en", UITimeZone: "UTC", }, UserDetails: &UserDetails{ NickName: "Jane", UserGender: GenderFemale, BirthDay: 23, BirthMonth: 5, BirthYear: 2001, }, }, }
UserFixtures specifies user fixtures for use in tests.
nil, Comment: "The quick brown fox jumps over the lazy dog.", Perm: PermShare, RefID: rnd.RefID(SharePrefix), CreatedAt: TimeStamp(), UpdatedAt: TimeStamp(), }, }"AliceAlbum": { UserUID: "uqxetse3cy5eo9z2", ShareUID: "as6sg6bxpogaaba9", ExpiresAt:
UserShareFixtures specifies fixtures for use in tests.
var UsernameLength = UsernameLengthDefault
UsernameLength specifies the minimum length of the username in characters.
var UsersPath = "users"
UsersPath is the relative path for user assets.
var ValidateTokens = true
var Visitor = User{ ID: -2, UserUID: "u000000000000002", UserName: "", AuthProvider: authn.ProviderLink.String(), UserRole: acl.RoleVisitor.String(), DisplayName: VisitorDisplayName, CanLogin: false, WebDAV: false, CanInvite: false, InviteToken: "", PreviewToken: "", DownloadToken: "", }
Visitor is a user without own account e.g. for link sharing.
Functions ¶
func AddDuplicate ¶
AddDuplicate adds a duplicate.
func AddPhotoToAlbums ¶
AddPhotoToAlbums adds a photo UID to multiple albums and automatically creates them if needed.
func AddPhotoToUserAlbums ¶
AddPhotoToUserAlbums adds a photo UID to multiple albums and automatically creates them as a user if needed.
func AuthLocal ¶
func AuthLocal(user *User, f form.Login, s *Session, c *gin.Context) (provider authn.ProviderType, method authn.MethodType, err error)
AuthLocal authenticates against the local user database with the specified username and password.
func AuthSession ¶
AuthSession returns the client session that belongs to the auth token provided, or returns nil if it was not found.
func CacheSession ¶
CacheSession adds a session to the cache if its ID is valid.
func Clip ¶
Clip shortens a string to the given number of characters, and removes all leading and trailing white space.
func CreateAlbumFixtures ¶
func CreateAlbumFixtures()
CreateAlbumFixtures inserts known entities into the database for testing.
func CreateCameraFixtures ¶
func CreateCameraFixtures()
CreateCameraFixtures inserts known entities into the database for testing.
func CreateCategoryFixtures ¶
func CreateCategoryFixtures()
CreateCategoryFixtures inserts known entities into the database for testing.
func CreateCellFixtures ¶
func CreateCellFixtures()
CreateCellFixtures inserts known entities into the database for testing.
func CreateClientFixtures ¶
func CreateClientFixtures()
CreateClientFixtures inserts known entities into the database for testing.
func CreateCountryFixtures ¶
func CreateCountryFixtures()
CreateCountryFixtures inserts known entities into the database for testing.
func CreateDefaultFixtures ¶
func CreateDefaultFixtures()
CreateDefaultFixtures inserts default fixtures for test and production.
func CreateDefaultUsers ¶
func CreateDefaultUsers()
CreateDefaultUsers initializes the database with default user accounts.
func CreateFaceFixtures ¶
func CreateFaceFixtures()
CreateFaceFixtures inserts known entities into the database for testing.
func CreateFileFixtures ¶
func CreateFileFixtures()
CreateFileFixtures inserts known entities into the database for testing.
func CreateFileShareFixtures ¶
func CreateFileShareFixtures()
CreateFileShareFixtures inserts known entities into the database for testing.
func CreateFileSyncFixtures ¶
func CreateFileSyncFixtures()
CreateFileSyncFixtures inserts known entities into the database for testing.
func CreateFolderFixtures ¶
func CreateFolderFixtures()
CreateFolderFixtures inserts known entities into the database for testing.
func CreateKeywordFixtures ¶
func CreateKeywordFixtures()
CreateKeywordFixtures inserts known entities into the database for testing.
func CreateLabelFixtures ¶
func CreateLabelFixtures()
CreateLabelFixtures inserts known entities into the database for testing.
func CreateLensFixtures ¶
func CreateLensFixtures()
CreateLensFixtures inserts known entities into the database for testing.
func CreateLinkFixtures ¶
func CreateLinkFixtures()
CreateLinkFixtures inserts known entities into the database for testing.
func CreateMarkerFixtures ¶
func CreateMarkerFixtures()
CreateMarkerFixtures inserts known entities into the database for testing.
func CreatePasscodeFixtures ¶
func CreatePasscodeFixtures()
CreatePasscodeFixtures inserts known entities into the database for testing.
func CreatePasswordFixtures ¶
func CreatePasswordFixtures()
CreatePasswordFixtures inserts known entities into the database for testing.
func CreatePhotoAlbumFixtures ¶
func CreatePhotoAlbumFixtures()
CreatePhotoAlbumFixtures inserts known entities into the database for testing.
func CreatePhotoFixtures ¶
func CreatePhotoFixtures()
CreatePhotoFixtures inserts known entities into the database for testing.
func CreatePhotoKeywordFixtures ¶
func CreatePhotoKeywordFixtures()
CreatePhotoKeywordFixtures inserts known entities into the database for testing.
func CreatePlaceFixtures ¶
func CreatePlaceFixtures()
CreatePlaceFixtures inserts known entities into the database for testing.
func CreateReactionFixtures ¶
func CreateReactionFixtures()
CreateReactionFixtures inserts known entities into the database for testing.
func CreateServiceFixtures ¶
func CreateServiceFixtures()
CreateServiceFixtures inserts known entities into the database for testing.
func CreateSessionFixtures ¶
func CreateSessionFixtures()
CreateSessionFixtures inserts known entities into the database for testing.
func CreateSubjectFixtures ¶
func CreateSubjectFixtures()
CreateSubjectFixtures inserts known entities into the database for testing.
func CreateTestFixtures ¶
func CreateTestFixtures()
CreateTestFixtures inserts all known entities into the database for testing.
func CreateUnknownCamera ¶
func CreateUnknownCamera()
CreateUnknownCamera initializes the database with an unknown camera if not exists
func CreateUnknownCountry ¶
func CreateUnknownCountry()
CreateUnknownCountry is used to initialize the database with the default country
func CreateUnknownLens ¶
func CreateUnknownLens()
CreateUnknownLens initializes the database with an unknown lens if not exists
func CreateUnknownLocation ¶
func CreateUnknownLocation()
CreateUnknownLocation creates the default location if not exists.
func CreateUnknownPlace ¶
func CreateUnknownPlace()
CreateUnknownPlace creates the default place if not exists.
func CreateUserDetails ¶
CreateUserDetails creates new user details or returns nil on error.
func CreateUserFixtures ¶
func CreateUserFixtures()
CreateUserFixtures creates the user fixtures specified above
func CreateUserSettings ¶
CreateUserSettings creates new user settings or returns nil on error.
func CreateUserShareFixtures ¶
func CreateUserShareFixtures()
CreateUserShareFixtures creates the fixtures specified above.
func DeleteChildSessions ¶
DeleteChildSessions deletes any other sessions that were authenticated with the specified session.
func DeleteClientSessions ¶
func DeleteClientSessions(client *Client, authMethod authn.MethodType, limit int64) (deleted int)
DeleteClientSessions deletes client sessions above the specified limit.
func DeleteExpiredSessions ¶
func DeleteExpiredSessions() (deleted int)
DeleteExpiredSessions deletes all expired sessions.
func DeleteFromSessionCache ¶
func DeleteFromSessionCache(id string)
DeleteFromSessionCache deletes a session from the cache.
func DeleteOrphanFaces ¶
DeleteOrphanFaces finds and (soft) deletes all unused face clusters.
func DeleteOrphanPeople ¶
DeleteOrphanPeople finds and (soft) deletes all unused people.
func DeleteSession ¶
DeleteSession permanently deletes a session.
func DeleteShareLinks ¶
DeleteShareLinks removes all links that match the shared UID.
func FindLegacyUser ¶
FindLegacyUser returns the matching legacy user or nil if it was not found.
func FindLegacyUsers ¶
FindLegacyUsers finds registered legacy users.
func FlushCameraCache ¶
func FlushCameraCache()
func FlushCountryCache ¶
func FlushCountryCache()
func FlushLensCache ¶
func FlushLensCache()
func InvalidDownloadToken ¶
InvalidDownloadToken checks if the token is unknown.
func InvalidPreviewToken ¶
InvalidPreviewToken checks if the preview token is unknown.
func PurgeDuplicate ¶
PurgeDuplicate deletes a duplicate.
func ResetTestFixtures ¶
func ResetTestFixtures()
ResetTestFixtures recreates database tables and test fixtures.
func SanitizeStringType ¶
SanitizeStringType omits invalid runes, ensures a maximum length of 32 characters, and returns the result.
func SanitizeStringTypeLower ¶
SanitizeStringTypeLower converts a type string to lowercase, omits invalid runes, and shortens it if needed.
func Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func SavePhotoForm ¶
SavePhotoForm saves a model in the database using form data.
func SetDbProvider ¶
func SetDbProvider(conn Gorm)
SetDbProvider sets the Gorm database connection provider.
func TimePointer ¶
TimePointer returns a pointer to the current timestamp.
func TypeString ¶
TypeString returns an entity type string for logging.
func UnscopedDb ¶
UnscopedDb returns an unscoped *gorm.DB connection that returns all records including deleted records.
func UpdateAlbum ¶
UpdateAlbum updates album attributes in the database.
func UpdateCounts ¶
func UpdateCounts() (err error)
UpdateCounts updates precalculated photo and file counts.
func UpdateLabelCounts ¶
func UpdateLabelCounts() (err error)
UpdateLabelCounts updates the label photo counts.
func UpdatePlacesCounts ¶
func UpdatePlacesCounts() (err error)
UpdatePlacesCounts updates the places photo counts.
func UpdateSubjectCounts ¶
func UpdateSubjectCounts() (err error)
UpdateSubjectCounts updates the subject file counts.
func ValidFaceCount ¶
ValidFaceCount counts the number of valid face markers for a file uid.
Types ¶
type Album ¶
type Album struct { ID uint `gorm:"primary_key" json:"ID" yaml:"-"` AlbumUID string `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"` ParentUID string `gorm:"type:VARBINARY(42);default:'';" json:"ParentUID,omitempty" yaml:"ParentUID,omitempty"` AlbumSlug string `gorm:"type:VARBINARY(160);index;" json:"Slug" yaml:"Slug"` AlbumPath string `gorm:"type:VARCHAR(1024);index;" json:"Path,omitempty" yaml:"Path,omitempty"` AlbumType string `gorm:"type:VARBINARY(8);default:'album';" json:"Type" yaml:"Type,omitempty"` AlbumTitle string `gorm:"type:VARCHAR(160);index;" json:"Title" yaml:"Title"` AlbumLocation string `gorm:"type:VARCHAR(160);" json:"Location" yaml:"Location,omitempty"` AlbumCategory string `gorm:"type:VARCHAR(100);index;" json:"Category" yaml:"Category,omitempty"` AlbumCaption string `gorm:"type:VARCHAR(1024);" json:"Caption" yaml:"Caption,omitempty"` AlbumDescription string `gorm:"type:VARCHAR(2048);" json:"Description" yaml:"Description,omitempty"` AlbumNotes string `gorm:"type:VARCHAR(1024);" json:"Notes" yaml:"Notes,omitempty"` AlbumFilter string `gorm:"type:VARBINARY(2048);" json:"Filter" yaml:"Filter,omitempty"` AlbumOrder string `gorm:"type:VARBINARY(32);" json:"Order" yaml:"Order,omitempty"` AlbumTemplate string `gorm:"type:VARBINARY(255);" json:"Template" yaml:"Template,omitempty"` AlbumState string `gorm:"type:VARCHAR(100);index;" json:"State" yaml:"State,omitempty"` AlbumCountry string `gorm:"type:VARBINARY(2);index:idx_albums_country_year_month;default:'zz';" json:"Country" yaml:"Country,omitempty"` AlbumYear int `gorm:"index:idx_albums_ymd;index:idx_albums_country_year_month;" json:"Year" yaml:"Year,omitempty"` AlbumMonth int `gorm:"index:idx_albums_ymd;index:idx_albums_country_year_month;" json:"Month" yaml:"Month,omitempty"` AlbumDay int `gorm:"index:idx_albums_ymd;" json:"Day" yaml:"Day,omitempty"` AlbumFavorite bool `json:"Favorite" yaml:"Favorite,omitempty"` AlbumPrivate bool `json:"Private" yaml:"Private,omitempty"` Thumb string `gorm:"type:VARBINARY(128);index;default:'';" json:"Thumb" yaml:"Thumb,omitempty"` ThumbSrc string `gorm:"type:VARBINARY(8);default:'';" json:"ThumbSrc,omitempty" yaml:"ThumbSrc,omitempty"` CreatedBy string `gorm:"type:VARBINARY(42);index" json:"CreatedBy,omitempty" yaml:"CreatedBy,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"CreatedAt,omitempty"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"UpdatedAt,omitempty"` PublishedAt *time.Time `sql:"index" json:"PublishedAt,omitempty" yaml:"PublishedAt,omitempty"` DeletedAt *time.Time `sql:"index" json:"DeletedAt" yaml:"DeletedAt,omitempty"` Photos PhotoAlbums `gorm:"foreignkey:AlbumUID;association_foreignkey:AlbumUID;" json:"-" yaml:"Photos,omitempty"` }
Album represents a photo album
func CachedAlbumByUID ¶
CachedAlbumByUID returns an existing album or nil if not found.
func FindAlbumByAttr ¶
FindAlbumByAttr finds an album by filters and slugs, or returns nil.
func FindAlbumBySlug ¶
FindAlbumBySlug finds a matching album or returns nil.
func FindFolderAlbum ¶
FindFolderAlbum finds a matching folder album or returns nil.
func FindMonthAlbum ¶
FindMonthAlbum finds a matching month album or returns nil.
func NewFolderAlbum ¶
NewFolderAlbum creates a new folder album.
func NewMomentsAlbum ¶
NewMomentsAlbum creates a new moment.
func NewMonthAlbum ¶
NewMonthAlbum creates a new month album.
func NewStateAlbum ¶
NewStateAlbum creates a new moment.
func NewUserAlbum ¶
NewUserAlbum creates a new album owned by a user.
func (*Album) AddPhotos ¶
func (m *Album) AddPhotos(UIDs []string) (added PhotoAlbums)
AddPhotos adds photos to an existing album.
func (*Album) AfterDelete ¶
AfterDelete flushes the album cache.
func (*Album) AfterUpdate ¶
AfterUpdate flushes the album cache.
func (*Album) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Album) DeletePermanently ¶
DeletePermanently permanently removes an album from the index.
func (*Album) LoadFromYaml ¶
LoadFromYaml photo data from a YAML file.
func (*Album) PublishCountChange ¶
PublishCountChange publishes an event with the added or removed number of albums.
func (*Album) RemovePhotos ¶
func (m *Album) RemovePhotos(UIDs []string) (removed PhotoAlbums)
RemovePhotos removes photos from an album.
func (*Album) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Album) SaveAsYaml ¶
SaveAsYaml saves album data as YAML file.
func (*Album) SetLocation ¶
SetLocation sets a new album location.
func (*Album) UpdateFolder ¶
UpdateFolder updates the path, filter and slug for a folder album.
func (*Album) UpdateTitleAndLocation ¶
UpdateTitleAndLocation updates title, location, and slug of generated albums if needed.
func (*Album) UpdateTitleAndState ¶
UpdateTitleAndState updates the album location.
func (*Album) YamlFileName ¶
YamlFileName returns the YAML file name.
type AlbumUser ¶
type AlbumUser struct { UID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"UID" yaml:"UID"` UserUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;index" json:"UserUID,omitempty" yaml:"UserUID,omitempty"` TeamUID string `gorm:"type:VARBINARY(42);index" json:"TeamUID,omitempty" yaml:"TeamUID,omitempty"` Perm uint `json:"Perm,omitempty" yaml:"Perm,omitempty"` }
AlbumUser represents the user and group ownership of an Album and the corresponding permissions.
func FirstOrCreateAlbumUser ¶
FirstOrCreateAlbumUser returns the existing record or inserts a new record if it does not already exist.
func NewAlbumUser ¶
NewAlbumUser creates a new entity model.
type Camera ¶
type Camera struct { ID uint `gorm:"primary_key" json:"ID" yaml:"ID"` CameraSlug string `gorm:"type:VARBINARY(160);unique_index;" json:"Slug" yaml:"-"` CameraName string `gorm:"type:VARCHAR(160);" json:"Name" yaml:"Name"` CameraMake string `gorm:"type:VARCHAR(160);" json:"Make" yaml:"Make,omitempty"` CameraModel string `gorm:"type:VARCHAR(160);" json:"Model" yaml:"Model,omitempty"` CameraType string `gorm:"type:VARCHAR(100);" json:"Type,omitempty" yaml:"Type,omitempty"` CameraDescription string `gorm:"type:VARCHAR(2048);" json:"Description,omitempty" yaml:"Description,omitempty"` CameraNotes string `gorm:"type:VARCHAR(1024);" json:"Notes,omitempty" yaml:"Notes,omitempty"` CreatedAt time.Time `json:"-" yaml:"-"` UpdatedAt time.Time `json:"-" yaml:"-"` DeletedAt *time.Time `sql:"index" json:"-" yaml:"-"` }
Camera model and make (as extracted from UpdateExif metadata)
func FirstOrCreateCamera ¶
FirstOrCreateCamera returns the existing row, inserts a new row or nil in case of errors.
type Category ¶
type Category struct { LabelID uint `gorm:"primary_key;auto_increment:false"` CategoryID uint `gorm:"primary_key;auto_increment:false"` Label *Label Category *Label }
Category of labels regroups labels with the same or a similar meaning using a main/root label
type Cell ¶
type Cell struct { ID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"ID" yaml:"ID"` CellName string `gorm:"type:VARCHAR(200);" json:"Name" yaml:"Name,omitempty"` CellStreet string `gorm:"type:VARCHAR(100);" json:"Street" yaml:"Street,omitempty"` CellPostcode string `gorm:"type:VARCHAR(50);" json:"Postcode" yaml:"Postcode,omitempty"` CellCategory string `gorm:"type:VARCHAR(50);" json:"Category" yaml:"Category,omitempty"` PlaceID string `gorm:"type:VARBINARY(42);default:'zz'" json:"-" yaml:"PlaceID"` Place *Place `gorm:"PRELOAD:true" json:"Place" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` }
Cell represents an S2 cell with metadata and reference to a place.
func FirstOrCreateCell ¶
FirstOrCreateCell fetches an existing row, inserts a new row or nil in case of errors.
func (*Cell) CityContains ¶
CityContains checks if the location city contains the text string
func (*Cell) CountryCode ¶
CountryCode returns the location place country code
func (*Cell) CountryName ¶
CountryName returns the location place country name
func (*Cell) Find ¶
Find retrieves location data from the database or an external api if not known already.
func (*Cell) NoCategory ¶
NoCategory checks id the location has no category
func (*Cell) NoPostcode ¶
NoPostcode checks if the location has a postcode.
func (*Cell) Refresh ¶
Refresh updates the index by retrieving the latest data from an external API.
type Client ¶
type Client struct { ClientUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"-" yaml:"ClientUID"` UserUID string `gorm:"type:VARBINARY(42);index;default:'';" json:"UserUID" yaml:"UserUID,omitempty"` UserName string `gorm:"size:200;index;" json:"UserName" yaml:"UserName,omitempty"` ClientName string `gorm:"size:200;" json:"ClientName" yaml:"ClientName,omitempty"` ClientRole string `gorm:"size:64;default:'';" json:"ClientRole" yaml:"ClientRole,omitempty"` ClientType string `gorm:"type:VARBINARY(16)" json:"ClientType" yaml:"ClientType,omitempty"` ClientURL string `gorm:"type:VARBINARY(255);default:'';column:client_url;" json:"ClientURL" yaml:"ClientURL,omitempty"` CallbackURL string `gorm:"type:VARBINARY(255);default:'';column:callback_url;" json:"CallbackURL" yaml:"CallbackURL,omitempty"` AuthProvider string `gorm:"type:VARBINARY(128);default:'';" json:"AuthProvider" yaml:"AuthProvider,omitempty"` AuthMethod string `gorm:"type:VARBINARY(128);default:'';" json:"AuthMethod" yaml:"AuthMethod,omitempty"` AuthScope string `gorm:"size:1024;default:'';" json:"AuthScope" yaml:"AuthScope,omitempty"` AuthExpires int64 `json:"AuthExpires" yaml:"AuthExpires,omitempty"` AuthTokens int64 `json:"AuthTokens" yaml:"AuthTokens,omitempty"` AuthEnabled bool `json:"AuthEnabled" yaml:"AuthEnabled,omitempty"` LastActive int64 `json:"LastActive" yaml:"LastActive,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` // contains filtered or unexported fields }
Client represents a client application.
func FindClientByUID ¶
FindClientByUID returns the matching client or nil if it was not found.
func (*Client) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Client) DeleteSessions ¶
DeleteSessions deletes all sessions that belong to this client.
func (*Client) EnforceAuthTokenLimit ¶
EnforceAuthTokenLimit deletes client sessions above the configured limit and returns the number of deleted sessions.
func (*Client) InvalidSecret ¶
InvalidSecret checks if the given client secret is invalid.
func (*Client) Method ¶
func (m *Client) Method() authn.MethodType
Method returns the client authentication method.
func (*Client) NewSession ¶
NewSession creates a new client session.
func (*Client) Provider ¶
func (m *Client) Provider() authn.ProviderType
Provider returns the client authentication provider.
func (*Client) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Client) SetExpires ¶
SetExpires sets a custom auth expiration time in seconds.
func (*Client) SetFormValues ¶
SetFormValues sets the values specified in the form.
func (*Client) SetMethod ¶
func (m *Client) SetMethod(method authn.MethodType) *Client
SetMethod sets a custom client authentication method.
func (*Client) SetProvider ¶
func (m *Client) SetProvider(provider authn.ProviderType) *Client
SetProvider sets a custom client authentication provider.
func (*Client) SetSecret ¶
SetSecret updates the current client secret or returns an error otherwise.
func (*Client) UpdateLastActive ¶
UpdateLastActive sets the time of last activity to now and optionally also updates the auth_clients table.
func (*Client) VerifySecret ¶
VerifySecret checks if the given client secret is correct.
type Country ¶
type Country struct { ID string `gorm:"type:VARBINARY(2);primary_key" json:"ID" yaml:"ID"` CountrySlug string `gorm:"type:VARBINARY(160);unique_index;" json:"Slug" yaml:"-"` CountryName string `gorm:"type:VARCHAR(160);" json:"Name" yaml:"Name,omitempty"` CountryDescription string `gorm:"type:VARCHAR(2048);" json:"Description,omitempty" yaml:"Description,omitempty"` CountryNotes string `gorm:"type:VARCHAR(1024);" json:"Notes,omitempty" yaml:"Notes,omitempty"` CountryPhoto *Photo `json:"-" yaml:"-"` CountryPhotoID uint `json:"-" yaml:"-"` New bool `gorm:"-" json:"-" yaml:"-"` }
Country represents a country location, used for labeling photos.
func FirstOrCreateCountry ¶
FirstOrCreateCountry returns the existing row, inserts a new row or nil in case of errors.
func NewCountry ¶
NewCountry creates a new country, with default country code if not provided
func (*Country) AfterCreate ¶
AfterCreate sets the New column used for database callback
type CountryMap ¶
type DbConn ¶
DbConn is a gorm.DB connection provider.
func InitTestDb ¶
InitTestDb connects to and completely initializes the test database incl fixtures.
type Deprecated ¶
type Deprecated []string
Deprecated represents a list of deprecated database tables.
type Details ¶
type Details struct { PhotoID uint `gorm:"primary_key;auto_increment:false" yaml:"-"` Keywords string `gorm:"type:VARCHAR(2048);" json:"Keywords" yaml:"Keywords"` KeywordsSrc string `gorm:"type:VARBINARY(8);" json:"KeywordsSrc" yaml:"KeywordsSrc,omitempty"` Notes string `gorm:"type:VARCHAR(2048);" json:"Notes" yaml:"Notes,omitempty"` NotesSrc string `gorm:"type:VARBINARY(8);" json:"NotesSrc" yaml:"NotesSrc,omitempty"` Subject string `gorm:"type:VARCHAR(1024);" json:"Subject" yaml:"Subject,omitempty"` SubjectSrc string `gorm:"type:VARBINARY(8);" json:"SubjectSrc" yaml:"SubjectSrc,omitempty"` Artist string `gorm:"type:VARCHAR(1024);" json:"Artist" yaml:"Artist,omitempty"` ArtistSrc string `gorm:"type:VARBINARY(8);" json:"ArtistSrc" yaml:"ArtistSrc,omitempty"` Copyright string `gorm:"type:VARCHAR(1024);" json:"Copyright" yaml:"Copyright,omitempty"` CopyrightSrc string `gorm:"type:VARBINARY(8);" json:"CopyrightSrc" yaml:"CopyrightSrc,omitempty"` License string `gorm:"type:VARCHAR(1024);" json:"License" yaml:"License,omitempty"` LicenseSrc string `gorm:"type:VARBINARY(8);" json:"LicenseSrc" yaml:"LicenseSrc,omitempty"` Software string `gorm:"type:VARCHAR(1024);" json:"Software" yaml:"Software,omitempty"` SoftwareSrc string `gorm:"type:VARBINARY(8);" json:"SoftwareSrc" yaml:"SoftwareSrc,omitempty"` CreatedAt time.Time `yaml:"-"` UpdatedAt time.Time `yaml:"-"` }
Details stores additional metadata fields for each photo to improve search performance.
func FirstOrCreateDetails ¶
FirstOrCreateDetails returns the existing row, inserts a new row or nil in case of errors.
func (*Details) HasCopyright ¶
HasCopyright tests if the photo has a Copyright
func (*Details) HasKeywords ¶
HasKeywords tests if the photo has a Keywords.
func (*Details) HasLicense ¶
HasLicense tests if the photo has a License.
func (*Details) HasSoftware ¶
HasSoftware tests if the photo has a Software.
func (*Details) HasSubject ¶
HasSubject tests if the photo has a Subject.
func (*Details) NoCopyright ¶
NoCopyright tests if the photo has no Copyright.
func (*Details) NoKeywords ¶
NoKeywords tests if the photo has no Keywords.
func (*Details) NoSoftware ¶
NoSoftware tests if the photo has no Software.
func (*Details) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Details) SetCopyright ¶
SetCopyright updates the photo details field.
func (*Details) SetKeywords ¶
SetKeywords updates the photo details field.
func (*Details) SetLicense ¶
SetLicense updates the photo details field.
func (*Details) SetSoftware ¶
SetSoftware updates the photo details field.
func (*Details) SetSubject ¶
SetSubject updates the photo details field.
type DetailsMap ¶
type Duplicate ¶
type Duplicate struct { FileName string `gorm:"type:VARBINARY(755);primary_key;" json:"Name" yaml:"Name"` FileRoot string `gorm:"type:VARBINARY(16);primary_key;default:'/';" json:"Root" yaml:"Root,omitempty"` FileHash string `gorm:"type:VARBINARY(128);default:'';index" json:"Hash" yaml:"Hash,omitempty"` FileSize int64 `json:"Size" yaml:"Size,omitempty"` ModTime int64 `json:"ModTime" yaml:"-"` }
Duplicate represents an exact file duplicate.
type Duplicates ¶
type Duplicates []Duplicate
type DuplicatesMap ¶
type Error ¶
type Error struct { ID uint `gorm:"primary_key" json:"ID" yaml:"ID"` ErrorTime time.Time `sql:"index" json:"Time" yaml:"Time"` ErrorLevel string `gorm:"type:VARBINARY(32)" json:"Level" yaml:"Level"` ErrorMessage string `gorm:"type:VARBINARY(2048)" json:"Message" yaml:"Message"` }
Error represents an error message log.
type Face ¶
type Face struct { ID string `gorm:"type:VARBINARY(64);primary_key;auto_increment:false;" json:"ID" yaml:"ID"` FaceSrc string `gorm:"type:VARBINARY(8);" json:"Src" yaml:"Src,omitempty"` FaceKind int `json:"Kind" yaml:"Kind,omitempty"` FaceHidden bool `json:"Hidden" yaml:"Hidden,omitempty"` SubjUID string `gorm:"type:VARBINARY(42);index;default:'';" json:"SubjUID" yaml:"SubjUID,omitempty"` Samples int `json:"Samples" yaml:"Samples,omitempty"` SampleRadius float64 `json:"SampleRadius" yaml:"SampleRadius,omitempty"` Collisions int `json:"Collisions" yaml:"Collisions,omitempty"` CollisionRadius float64 `json:"CollisionRadius" yaml:"CollisionRadius,omitempty"` EmbeddingJSON json.RawMessage `gorm:"type:MEDIUMBLOB;" json:"-" yaml:"EmbeddingJSON,omitempty"` MatchedAt *time.Time `json:"MatchedAt" yaml:"MatchedAt,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"CreatedAt,omitempty"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"UpdatedAt,omitempty"` // contains filtered or unexported fields }
Face represents the face of a Subject.
func FirstOrCreateFace ¶
FirstOrCreateFace returns the existing entity, inserts a new entity or nil in case of errors.
func NewFace ¶
func NewFace(subjUID, faceSrc string, embeddings face.Embeddings) *Face
NewFace returns a new face.
func (*Face) Match ¶
func (m *Face) Match(embeddings face.Embeddings) (match bool, dist float64)
Match tests if embeddings match this face.
func (*Face) MatchMarkers ¶
MatchMarkers finds and references matching markers.
func (*Face) RefreshPhotos ¶
RefreshPhotos flags related photos for metadata maintenance.
func (*Face) ResolveCollision ¶
func (m *Face) ResolveCollision(embeddings face.Embeddings) (resolved bool, err error)
ResolveCollision resolves a collision with a different subject's face.
func (*Face) ReviseMatches ¶
ReviseMatches updates marker matches after face parameters have been changed.
func (*Face) SetEmbeddings ¶
func (m *Face) SetEmbeddings(embeddings face.Embeddings) (err error)
SetEmbeddings assigns face embeddings.
func (*Face) SetSubjectUID ¶
SetSubjectUID updates the face's subject uid and related markers.
func (*Face) SkipMatching ¶
SkipMatching checks whether the face should be skipped when matching.
type Faces ¶
type Faces []Face
Faces represents a Face slice.
func (Faces) Embeddings ¶
func (f Faces) Embeddings() (embeddings face.Embeddings)
Embeddings returns all face embeddings in this slice.
type File ¶
type File struct { ID uint `gorm:"primary_key" json:"-" yaml:"-"` Photo *Photo `json:"-" yaml:"-"` PhotoID uint `gorm:"index:idx_files_photo_id;" json:"-" yaml:"-"` PhotoUID string `gorm:"type:VARBINARY(42);index;" json:"PhotoUID" yaml:"PhotoUID"` PhotoTakenAt time.Time `gorm:"type:DATETIME;index;" json:"TakenAt" yaml:"TakenAt"` TimeIndex *string `gorm:"type:VARBINARY(64);" json:"TimeIndex" yaml:"TimeIndex"` MediaID *string `gorm:"type:VARBINARY(32);" json:"MediaID" yaml:"MediaID"` MediaUTC int64 `gorm:"column:media_utc;index;" json:"MediaUTC" yaml:"MediaUTC,omitempty"` InstanceID string `gorm:"type:VARBINARY(64);index;" json:"InstanceID,omitempty" yaml:"InstanceID,omitempty"` FileUID string `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"` FileName string `gorm:"type:VARBINARY(1024);unique_index:idx_files_name_root;" json:"Name" yaml:"Name"` FileRoot string `gorm:"type:VARBINARY(16);default:'/';unique_index:idx_files_name_root;" json:"Root" yaml:"Root,omitempty"` OriginalName string `gorm:"type:VARBINARY(755);" json:"OriginalName" yaml:"OriginalName,omitempty"` FileHash string `gorm:"type:VARBINARY(128);index" json:"Hash" yaml:"Hash,omitempty"` FileSize int64 `json:"Size" yaml:"Size,omitempty"` FileCodec string `gorm:"type:VARBINARY(32)" json:"Codec" yaml:"Codec,omitempty"` FileType string `gorm:"type:VARBINARY(16)" json:"FileType" yaml:"FileType,omitempty"` MediaType string `gorm:"type:VARBINARY(16)" json:"MediaType" yaml:"MediaType,omitempty"` FileMime string `gorm:"type:VARBINARY(64)" json:"Mime" yaml:"Mime,omitempty"` FilePrimary bool `gorm:"index:idx_files_photo_id;" json:"Primary" yaml:"Primary,omitempty"` FileSidecar bool `json:"Sidecar" yaml:"Sidecar,omitempty"` FileMissing bool `json:"Missing" yaml:"Missing,omitempty"` FilePortrait bool `json:"Portrait" yaml:"Portrait,omitempty"` FileVideo bool `json:"Video" yaml:"Video,omitempty"` FileDuration time.Duration `json:"Duration" yaml:"Duration,omitempty"` FileFPS float64 `gorm:"column:file_fps;" json:"FPS" yaml:"FPS,omitempty"` FileFrames int `gorm:"column:file_frames;" json:"Frames" yaml:"Frames,omitempty"` FileWidth int `gorm:"column:file_width;" json:"Width" yaml:"Width,omitempty"` FileHeight int `gorm:"column:file_height;" json:"Height" yaml:"Height,omitempty"` FileOrientation int `gorm:"column:file_orientation;" json:"Orientation" yaml:"Orientation,omitempty"` FileOrientationSrc string `gorm:"column:file_orientation_src;type:VARBINARY(8);default:'';" json:"OrientationSrc" yaml:"OrientationSrc,omitempty"` FileProjection string `gorm:"column:file_projection;type:VARBINARY(64);" json:"Projection,omitempty" yaml:"Projection,omitempty"` FileAspectRatio float32 `gorm:"column:file_aspect_ratio;type:FLOAT;" json:"AspectRatio" yaml:"AspectRatio,omitempty"` FileHDR bool `gorm:"column:file_hdr;" json:"HDR" yaml:"HDR,omitempty"` FileWatermark bool `gorm:"column:file_watermark;" json:"Watermark" yaml:"Watermark,omitempty"` FileColorProfile string `gorm:"type:VARBINARY(64);" json:"ColorProfile,omitempty" yaml:"ColorProfile,omitempty"` FileMainColor string `gorm:"type:VARBINARY(16);" json:"MainColor" yaml:"MainColor,omitempty"` FileColors string `gorm:"type:VARBINARY(18);" json:"Colors" yaml:"Colors,omitempty"` FileLuminance string `gorm:"type:VARBINARY(18);" json:"Luminance" yaml:"Luminance,omitempty"` FileDiff int `json:"Diff" yaml:"Diff,omitempty"` FileChroma int16 `json:"Chroma" yaml:"Chroma,omitempty"` FileSoftware string `gorm:"type:VARCHAR(64)" json:"Software" yaml:"Software,omitempty"` FileError string `gorm:"type:VARBINARY(512);index;" json:"Error" yaml:"Error,omitempty"` ModTime int64 `json:"ModTime" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` CreatedIn int64 `json:"CreatedIn" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` UpdatedIn int64 `json:"UpdatedIn" yaml:"-"` PublishedAt *time.Time `sql:"index" json:"PublishedAt,omitempty" yaml:"PublishedAt,omitempty"` DeletedAt *time.Time `sql:"index" json:"DeletedAt,omitempty" yaml:"-"` Sync []FileSync `json:"-" yaml:"-"` // contains filtered or unexported fields }
File represents an image or sidecar file that belongs to a photo.
func FirstFileByHash ¶
FirstFileByHash gets a file in db from its hash
func PrimaryFile ¶
PrimaryFile returns the primary file for a photo uid.
func (*File) AllFilesMissing ¶
AllFilesMissing returns true, if all files for the photo of this file are missing.
func (*File) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*File) ColorProfile ¶
ColorProfile returns the ICC color profile name if any.
func (*File) DeletePermanently ¶
DeletePermanently permanently removes a file from the index.
func (*File) DownloadName ¶
func (m *File) DownloadName(n customize.DownloadName, seq int) string
DownloadName returns the download file name.
func (*File) HasColorProfile ¶
HasColorProfile tests if the file has a matching color profile.
func (*File) HasWatermark ¶
HasWatermark returns true if the file has a watermark.
func (*File) IsAnimated ¶
IsAnimated returns true if the file has animated image frames.
func (*File) MarshalJSON ¶
MarshalJSON returns the JSON encoding.
func (*File) Orientation ¶
Orientation returns the file's Exif orientation value.
func (*File) OriginalBase ¶
OriginalBase returns the original file name without path.
func (*File) Projection ¶
func (m *File) Projection() projection.Type
Projection returns the panorama projection name if any.
func (File) RegenerateIndex ¶
func (m File) RegenerateIndex()
RegenerateIndex updates the search index columns.
func (*File) RelatedPhoto ¶
RelatedPhoto returns the related photo entity.
func (*File) ReplaceHash ¶
ReplaceHash updates file hash references.
func (*File) ResetColorProfile ¶
func (m *File) ResetColorProfile()
ResetColorProfile removes the ICC color profile name.
func (*File) ResolvePrimary ¶
ResolvePrimary ensures there is only one primary file for a photo.
func (*File) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*File) SaveMarkers ¶
SaveMarkers updates markers in the index.
func (*File) SetColorProfile ¶
SetColorProfile sets the ICC color profile name such as "Display P3".
func (*File) SetDuration ¶
SetDuration sets the video/animation duration.
func (*File) SetMediaUTC ¶
SetMediaUTC sets the media creation date from metadata as unix time in ms.
func (*File) SetOrientation ¶
SetOrientation sets the file's Exif orientation value.
func (*File) SetProjection ¶
SetProjection sets the panorama projection name.
func (*File) SetSoftware ¶
SetSoftware sets the software name.
func (*File) SubjectNames ¶
SubjectNames returns all known subject names.
func (*File) UnsavedMarkers ¶
UnsavedMarkers tests if any marker hasn't been saved yet.
func (*File) UpdatePhotoFaceCount ¶
UpdatePhotoFaceCount updates the faces count in the index and returns it if the file is primary.
func (*File) UpdateVideoInfos ¶
UpdateVideoInfos updated related video files so they are properly grouped with the primary image in search results. see https://github.com/photoprism/photoprism/pull/3588#issuecomment-1683429455
func (*File) ValidFaceCount ¶
ValidFaceCount returns the number of valid face markers.
type FileAppearance ¶
type FileAppearance struct { FileMainColor string FileColors string FileLuminance string FileDiff int FileChroma int16 }
FileAppearance represents file metadata related to colors, luminance and perception. see File.UpdateVideoInfos()
type FileDimensions ¶
type FileDimensions struct { FileWidth int FileHeight int FileOrientation int FileAspectRatio float32 }
FileDimensions represents metadata related to the size and orientation of a file. see File.UpdateVideoInfos()
type FileShare ¶
type FileShare struct {}
FileShare represents a one-to-many relation between File and Account for pushing files to remote services.
func FirstOrCreateFileShare ¶
FirstOrCreateFileShare returns the existing row, inserts a new row or nil in case of errors.
func NewFileShare ¶
NewFileShare creates a new entity.
func (*FileShare) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
type FileShareMap ¶
type FileSync ¶
type FileSync struct { RemoteName string `gorm:"primary_key;auto_increment:false;type:VARBINARY(255)"` ServiceID uint `gorm:"primary_key;auto_increment:false"` FileID uint `gorm:"index;"` RemoteDate time.Time RemoteSize int64 Status string `gorm:"type:VARBINARY(16);"` Error string `gorm:"type:VARBINARY(512);"` Errors int File *File Account *Service CreatedAt time.Time UpdatedAt time.Time }
FileSync represents a one-to-many relation between File and Account for syncing with remote services.
func FirstOrCreateFileSync ¶
FirstOrCreateFileSync returns the existing row, inserts a new row or nil in case of errors.
func NewFileSync ¶
NewFileSync creates a new entity.
func (*FileSync) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
type FileSyncMap ¶
type Folder ¶
type Folder struct { Path string `gorm:"type:VARBINARY(1024);unique_index:idx_folders_path_root;" json:"Path" yaml:"Path"` Root string `gorm:"type:VARBINARY(16);default:'';unique_index:idx_folders_path_root;" json:"Root" yaml:"Root,omitempty"` FolderUID string `gorm:"type:VARBINARY(42);primary_key;" json:"UID,omitempty" yaml:"UID,omitempty"` FolderType string `gorm:"type:VARBINARY(16);" json:"Type" yaml:"Type,omitempty"` FolderTitle string `gorm:"type:VARCHAR(200);" json:"Title" yaml:"Title,omitempty"` FolderCategory string `gorm:"type:VARCHAR(100);index;" json:"Category" yaml:"Category,omitempty"` FolderDescription string `gorm:"type:VARCHAR(2048);" json:"Description,omitempty" yaml:"Description,omitempty"` FolderOrder string `gorm:"type:VARBINARY(32);" json:"Order" yaml:"Order,omitempty"` FolderCountry string `gorm:"type:VARBINARY(2);index:idx_folders_country_year_month;default:'zz'" json:"Country" yaml:"Country,omitempty"` FolderYear int `gorm:"index:idx_folders_country_year_month;" json:"Year" yaml:"Year,omitempty"` FolderMonth int `gorm:"index:idx_folders_country_year_month;" json:"Month" yaml:"Month,omitempty"` FolderDay int `json:"Day" yaml:"Day,omitempty"` FolderFavorite bool `json:"Favorite" yaml:"Favorite,omitempty"` FolderPrivate bool `json:"Private" yaml:"Private,omitempty"` FolderIgnore bool `json:"Ignore" yaml:"Ignore,omitempty"` FolderWatch bool `json:"Watch" yaml:"Watch,omitempty"` FileCount int `gorm:"-" json:"FileCount" yaml:"-"` CreatedAt time.Time `json:"-" yaml:"-"` UpdatedAt time.Time `json:"-" yaml:"-"` ModifiedAt time.Time `json:"ModifiedAt,omitempty" yaml:"-"` PublishedAt *time.Time `sql:"index" json:"PublishedAt,omitempty" yaml:"PublishedAt,omitempty"` DeletedAt *time.Time `sql:"index" json:"-"` }
Folder represents a file system directory.
func FindFolder ¶
FindFolder returns an existing row if exists.
func FirstOrCreateFolder ¶
FirstOrCreateFolder returns the existing row, inserts a new row or nil in case of errors.
func (*Folder) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Folder) SetValuesFromPath ¶
func (m *Folder) SetValuesFromPath()
SetValuesFromPath updates the title and other values based on the path name.
type Keyword ¶
type Keyword struct { ID uint `gorm:"primary_key"` Keyword string `gorm:"type:VARCHAR(64);index;"` Skip bool }
Keyword used for full text search
func FirstOrCreateKeyword ¶
FirstOrCreateKeyword returns the existing row, inserts a new row or nil in case of errors.
func NewKeyword ¶
NewKeyword registers a new keyword in database
func (*Keyword) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
type KeywordMap ¶
func (KeywordMap) Get ¶
func (m KeywordMap) Get(name string) Keyword
func (KeywordMap) Pointer ¶
func (m KeywordMap) Pointer(name string) *Keyword
type Label ¶
type Label struct { ID uint `gorm:"primary_key" json:"ID" yaml:"-"` LabelUID string `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"` LabelSlug string `gorm:"type:VARBINARY(160);unique_index;" json:"Slug" yaml:"-"` CustomSlug string `gorm:"type:VARBINARY(160);index;" json:"CustomSlug" yaml:"-"` LabelName string `gorm:"type:VARCHAR(160);" json:"Name" yaml:"Name"` LabelPriority int `json:"Priority" yaml:"Priority,omitempty"` LabelFavorite bool `json:"Favorite" yaml:"Favorite,omitempty"` LabelDescription string `gorm:"type:VARCHAR(2048);" json:"Description" yaml:"Description,omitempty"` LabelNotes string `gorm:"type:VARCHAR(1024);" json:"Notes" yaml:"Notes,omitempty"` LabelCategories []*Label `gorm:"many2many:categories;association_jointable_foreignkey:category_id" json:"-" yaml:"-"` PhotoCount int `gorm:"default:1" json:"PhotoCount" yaml:"-"` Thumb string `gorm:"type:VARBINARY(128);index;default:''" json:"Thumb" yaml:"Thumb,omitempty"` ThumbSrc string `gorm:"type:VARBINARY(8);default:''" json:"ThumbSrc,omitempty" yaml:"ThumbSrc,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` PublishedAt *time.Time `sql:"index" json:"PublishedAt,omitempty" yaml:"PublishedAt,omitempty"` DeletedAt *time.Time `sql:"index" json:"DeletedAt,omitempty" yaml:"-"` New bool `gorm:"-" json:"-" yaml:"-"` }
Label is used for photo, album and location categorization
func FirstOrCreateLabel ¶
FirstOrCreateLabel returns the existing label, inserts a new label or nil in case of errors.
func (*Label) AfterCreate ¶
AfterCreate sets the New column used for database callback
func (*Label) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Label) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
type LabelMap ¶
func (LabelMap) PhotoLabel ¶
type LabelPhotoCount ¶
type LabelPhotoCounts ¶
type LabelPhotoCounts []LabelPhotoCount
func LabelCounts ¶
func LabelCounts() LabelPhotoCounts
LabelCounts returns the number of photos for each label ID.
type Lens ¶
type Lens struct { ID uint `gorm:"primary_key" json:"ID" yaml:"ID"` LensSlug string `gorm:"type:VARBINARY(160);unique_index;" json:"Slug" yaml:"Slug,omitempty"` LensName string `gorm:"type:VARCHAR(160);" json:"Name" yaml:"Name"` LensMake string `gorm:"type:VARCHAR(160);" json:"Make" yaml:"Make,omitempty"` LensModel string `gorm:"type:VARCHAR(160);" json:"Model" yaml:"Model,omitempty"` LensType string `gorm:"type:VARCHAR(100);" json:"Type" yaml:"Type,omitempty"` LensDescription string `gorm:"type:VARCHAR(2048);" json:"Description,omitempty" yaml:"Description,omitempty"` LensNotes string `gorm:"type:VARCHAR(1024);" json:"Notes,omitempty" yaml:"Notes,omitempty"` CreatedAt time.Time `json:"-" yaml:"-"` UpdatedAt time.Time `json:"-" yaml:"-"` DeletedAt *time.Time `sql:"index" json:"-" yaml:"-"` }
Lens represents camera lens (as extracted from UpdateExif metadata)
func FirstOrCreateLens ¶
FirstOrCreateLens returns the existing row, inserts a new row or nil in case of errors.
type Link ¶
type Link struct { LinkUID string `gorm:"type:VARBINARY(42);primary_key;" json:"UID,omitempty" yaml:"UID,omitempty"` LinkToken string `gorm:"type:VARBINARY(160);unique_index:idx_links_uid_token;" json:"Token" yaml:"Token,omitempty"` LinkExpires int `json:"Expires" yaml:"Expires,omitempty"` LinkViews uint `json:"Views" yaml:"-"` MaxViews uint `json:"MaxViews" yaml:"-"` HasPassword bool `json:"VerifyPassword" yaml:"VerifyPassword,omitempty"` Comment string `gorm:"size:512;" json:"Comment,omitempty" yaml:"Comment,omitempty"` Perm uint `json:"Perm,omitempty" yaml:"Perm,omitempty"` RefID string `gorm:"type:VARBINARY(16);" json:"-" yaml:"-"` CreatedBy string `gorm:"type:VARBINARY(42);index" json:"CreatedBy,omitempty" yaml:"CreatedBy,omitempty"` CreatedAt time.Time `deepcopier:"skip" json:"CreatedAt" yaml:"CreatedAt"` ModifiedAt time.Time `deepcopier:"skip" json:"ModifiedAt" yaml:"ModifiedAt"` }
Link represents a link to share content.
func NewUserLink ¶
NewUserLink creates a sharing link owned by a user.
func (*Link) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Link) ExpiresAt ¶
ExpiresAt returns the time when the share link expires or nil if it never expires.
func (*Link) InvalidPassword ¶
InvalidPassword checks if the password provided to use the share link is invalid.
func (*Link) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Link) SetPassword ¶
SetPassword sets the password required to use the share link.
type Links ¶
type Links []Link
func FindLinks ¶
FindLinks returns a slice of links for a token and a share UID (at least one must be specified).
func FindValidLinks ¶
FindValidLinks returns a slice of non-expired links for a token and share UID (at least one must be provided).
type Map ¶
type Map map[string]interface{}
Map is an alias for map[string]interface{}.
func ModelValues ¶
ModelValues extracts Values from an entity model.
type Marker ¶
type Marker struct { MarkerUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"UID" yaml:"UID"` FileUID string `gorm:"type:VARBINARY(42);index;default:'';" json:"FileUID" yaml:"FileUID"` MarkerType string `gorm:"type:VARBINARY(8);default:'';" json:"Type" yaml:"Type"` MarkerSrc string `gorm:"type:VARBINARY(8);default:'';" json:"Src" yaml:"Src,omitempty"` MarkerName string `gorm:"type:VARCHAR(160);" json:"Name" yaml:"Name,omitempty"` MarkerReview bool `json:"Review" yaml:"Review,omitempty"` MarkerInvalid bool `json:"Invalid" yaml:"Invalid,omitempty"` SubjUID string `gorm:"type:VARBINARY(42);index:idx_markers_subj_uid_src;" json:"SubjUID" yaml:"SubjUID,omitempty"` SubjSrc string `gorm:"type:VARBINARY(8);index:idx_markers_subj_uid_src;default:'';" json:"SubjSrc" yaml:"SubjSrc,omitempty"` FaceID string `gorm:"type:VARBINARY(64);index;" json:"FaceID" yaml:"FaceID,omitempty"` FaceDist float64 `gorm:"default:-1;" json:"FaceDist" yaml:"FaceDist,omitempty"` EmbeddingsJSON json.RawMessage `gorm:"type:MEDIUMBLOB;" json:"-" yaml:"EmbeddingsJSON,omitempty"` LandmarksJSON json.RawMessage `gorm:"type:MEDIUMBLOB;" json:"-" yaml:"LandmarksJSON,omitempty"` X float32 `gorm:"type:FLOAT;" json:"X" yaml:"X,omitempty"` Y float32 `gorm:"type:FLOAT;" json:"Y" yaml:"Y,omitempty"` W float32 `gorm:"type:FLOAT;" json:"W" yaml:"W,omitempty"` H float32 `gorm:"type:FLOAT;" json:"H" yaml:"H,omitempty"` Q int `json:"Q" yaml:"Q,omitempty"` Size int `gorm:"default:-1;" json:"Size" yaml:"Size,omitempty"` Score int `gorm:"type:SMALLINT;" json:"Score" yaml:"Score,omitempty"` Thumb string `gorm:"type:VARBINARY(128);index;default:'';" json:"Thumb" yaml:"Thumb,omitempty"` MatchedAt *time.Time `sql:"index" json:"MatchedAt" yaml:"MatchedAt,omitempty"` CreatedAt time.Time UpdatedAt time.Time // contains filtered or unexported fields }
Marker represents an image marker point.
func CreateMarkerIfNotExists ¶
CreateMarkerIfNotExists updates a marker in the database or creates a new one if needed.
func FindMarker ¶
FindMarker returns an existing row if exists.
func NewFaceMarker ¶
NewFaceMarker creates a new entity.
func NewMarker ¶
func NewMarker(file File, area crop.Area, subjUID, markerSrc, markerType string, size, score int) *Marker
NewMarker creates a new entity.
func (*Marker) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Marker) ClearSubject ¶
ClearSubject removes an existing subject association, and reports a collision.
func (*Marker) DetectedFace ¶
DetectedFace tests if the marker is an automatically detected face.
func (*Marker) Embeddings ¶
func (m *Marker) Embeddings() face.Embeddings
Embeddings returns parsed marker embeddings.
func (*Marker) InvalidArea ¶
InvalidArea tests if the marker area is invalid or out of range.
func (*Marker) MarshalJSON ¶
MarshalJSON returns the JSON encoding.
func (*Marker) OverlapArea ¶
OverlapArea calculates the overlap area of two markers.
func (*Marker) OverlapPercent ¶
OverlapPercent calculates the overlap ratio of two markers in percent.
func (*Marker) RefreshPhotos ¶
RefreshPhotos flags related photos for metadata maintenance.
func (*Marker) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Marker) SaveForm ¶
SaveForm updates the entity using form data and stores it in the database.
func (*Marker) SetEmbeddings ¶
func (m *Marker) SetEmbeddings(e face.Embeddings)
SetEmbeddings assigns new face emebddings to the marker.
func (*Marker) SubjectName ¶
SubjectName returns the matching subject's name.
func (*Marker) SurfaceRatio ¶
SurfaceRatio returns the surface ratio.
func (*Marker) SyncSubject ¶
SyncSubject maintains the marker subject relationship.
func (*Marker) Uncertainty ¶
Uncertainty returns the detection uncertainty based on the score in percent.
func (*Marker) UpdateFile ¶
UpdateFile sets the file uid and thumb and updates the index if the marker already exists.
type Markers ¶
type Markers []Marker
Markers represents a list of markers.
func FindMarkers ¶
FindMarkers returns up to 1000 markers for a given file uid.
func (*Markers) AppendWithEmbedding ¶
AppendWithEmbedding adds a marker with face embedding.
func (Markers) DetectedFaceCount ¶
DetectedFaceCount returns the number of automatically detected face markers.
func (Markers) SubjectNames ¶
SubjectNames returns known subject names.
func (Markers) ValidFaceCount ¶
ValidFaceCount returns the number of valid face markers.
type MultiStrings ¶
type Passcode ¶
type Passcode struct { UID string `gorm:"type:VARBINARY(255);primary_key;" json:"UID"` KeyType string `gorm:"size:64;default:'';primary_key;" json:"Type" yaml:"Type"` KeyURL string `gorm:"size:2048;default:'';column:key_url;" json:"-" yaml:"-"` RecoveryCode string `gorm:"size:255;default:'';" json:"-" yaml:"-"` VerifiedAt *time.Time `json:"VerifiedAt" yaml:"-"` ActivatedAt *time.Time `json:"ActivatedAt" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` // contains filtered or unexported fields }
Passcode represents a two-factor authentication key.
func FindPasscode ¶
FindPasscode returns the matching key or nil if it was not found.
func NewPasscode ¶
NewPasscode returns a new two-factor authentication key or nil if no valid entity UID was provided.
func (*Passcode) GenerateCode ¶
GenerateCode returns a valid passcode for testing.
func (*Passcode) Image ¶
Image returns an image with a QR Code that can be used to initialize compatible authenticator apps.
func (*Passcode) InvalidUID ¶
InvalidUID checks if the entity UID is invalid.
func (*Passcode) Key ¶
Key returns the parsed two-factor authentication key or nil if the KeyURL is invalid.
func (*Passcode) MarshalJSON ¶
MarshalJSON returns the JSON encoding.
func (*Passcode) PNG ¶
PNG returns a PNG image buffer with a QR Code that can be used to initialize compatible authenticator apps.
func (*Passcode) Save ¶
Save updates the record in the database or inserts a new record if it does not exist yet.
func (*Passcode) SetKeyURL ¶
SetKeyURL sets a new two-factor authentication key based on the URL provided.
type PasscodeMap ¶
func (PasscodeMap) Get ¶
func (m PasscodeMap) Get(name string) Passcode
func (PasscodeMap) Pointer ¶
func (m PasscodeMap) Pointer(name string) *Passcode
type Password ¶
type Password struct { UID string `gorm:"type:VARBINARY(255);primary_key;" json:"UID"` Hash string `deepcopier:"skip" gorm:"type:VARBINARY(255);" json:"Hash"` CreatedAt time.Time `deepcopier:"skip" json:"CreatedAt"` UpdatedAt time.Time `deepcopier:"skip" json:"UpdatedAt"` }
Password represents a password hash.
func FindPassword ¶
FindPassword returns an entity pointer if exists.
func NewPassword ¶
NewPassword creates a new password instance.
func (*Password) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Password) SetPassword ¶
SetPassword sets a new password stored as hash.
type PasswordMap ¶
func (PasswordMap) Get ¶
func (m PasswordMap) Get(name string) Password
func (PasswordMap) Pointer ¶
func (m PasswordMap) Pointer(name string) *Password
type Person ¶
type Person struct { SubjUID string `json:"UID"` SubjName string `json:"Name"` SubjAlias string `json:"Alias"` SubjFavorite bool `json:"Favorite"` SubjHidden bool `json:"Hidden"` }
Person represents a subject with type person.
func (*Person) MarshalJSON ¶
MarshalJSON returns the JSON encoding.
type Photo ¶
type Photo struct { ID uint `gorm:"primary_key" yaml:"-"` UUID string `gorm:"type:VARBINARY(64);index;" json:"DocumentID,omitempty" yaml:"DocumentID,omitempty"` TakenAt time.Time `gorm:"type:DATETIME;index:idx_photos_taken_uid;" json:"TakenAt" yaml:"TakenAt"` TakenAtLocal time.Time `gorm:"type:DATETIME;" json:"TakenAtLocal" yaml:"TakenAtLocal"` TakenSrc string `gorm:"type:VARBINARY(8);" json:"TakenSrc" yaml:"TakenSrc,omitempty"` PhotoUID string `gorm:"type:VARBINARY(42);unique_index;index:idx_photos_taken_uid;" json:"UID" yaml:"UID"` PhotoType string `gorm:"type:VARBINARY(8);default:'image';" json:"Type" yaml:"Type"` TypeSrc string `gorm:"type:VARBINARY(8);" json:"TypeSrc" yaml:"TypeSrc,omitempty"` PhotoTitle string `gorm:"type:VARCHAR(200);" json:"Title" yaml:"Title"` TitleSrc string `gorm:"type:VARBINARY(8);" json:"TitleSrc" yaml:"TitleSrc,omitempty"` PhotoDescription string `gorm:"type:VARCHAR(4096);" json:"Description" yaml:"Description,omitempty"` DescriptionSrc string `gorm:"type:VARBINARY(8);" json:"DescriptionSrc" yaml:"DescriptionSrc,omitempty"` PhotoPath string `gorm:"type:VARBINARY(1024);index:idx_photos_path_name;" json:"Path" yaml:"-"` PhotoName string `gorm:"type:VARBINARY(255);index:idx_photos_path_name;" json:"Name" yaml:"-"` OriginalName string `gorm:"type:VARBINARY(755);" json:"OriginalName" yaml:"OriginalName,omitempty"` PhotoStack int8 `json:"Stack" yaml:"Stack,omitempty"` PhotoFavorite bool `json:"Favorite" yaml:"Favorite,omitempty"` PhotoPrivate bool `json:"Private" yaml:"Private,omitempty"` PhotoScan bool `json:"Scan" yaml:"Scan,omitempty"` PhotoPanorama bool `json:"Panorama" yaml:"Panorama,omitempty"` TimeZone string `gorm:"type:VARBINARY(64);" json:"TimeZone" yaml:"TimeZone,omitempty"` PlaceID string `gorm:"type:VARBINARY(42);index;default:'zz'" json:"PlaceID" yaml:"-"` PlaceSrc string `gorm:"type:VARBINARY(8);" json:"PlaceSrc" yaml:"PlaceSrc,omitempty"` CellID string `gorm:"type:VARBINARY(42);index;default:'zz'" json:"CellID" yaml:"-"` CellAccuracy int `json:"CellAccuracy" yaml:"CellAccuracy,omitempty"` PhotoAltitude int `json:"Altitude" yaml:"Altitude,omitempty"` PhotoLat float32 `gorm:"type:FLOAT;index;" json:"Lat" yaml:"Lat,omitempty"` PhotoLng float32 `gorm:"type:FLOAT;index;" json:"Lng" yaml:"Lng,omitempty"` PhotoCountry string `gorm:"type:VARBINARY(2);index:idx_photos_country_year_month;default:'zz'" json:"Country" yaml:"-"` PhotoYear int `gorm:"index:idx_photos_ymd;index:idx_photos_country_year_month;" json:"Year" yaml:"Year"` PhotoMonth int `gorm:"index:idx_photos_ymd;index:idx_photos_country_year_month;" json:"Month" yaml:"Month"` PhotoDay int `gorm:"index:idx_photos_ymd" json:"Day" yaml:"Day"` PhotoIso int `json:"Iso" yaml:"ISO,omitempty"` PhotoExposure string `gorm:"type:VARBINARY(64);" json:"Exposure" yaml:"Exposure,omitempty"` PhotoFNumber float32 `gorm:"type:FLOAT;" json:"FNumber" yaml:"FNumber,omitempty"` PhotoFocalLength int `json:"FocalLength" yaml:"FocalLength,omitempty"` PhotoQuality int `gorm:"type:SMALLINT" json:"Quality" yaml:"Quality,omitempty"` PhotoFaces int `json:"Faces,omitempty" yaml:"Faces,omitempty"` PhotoResolution int `gorm:"type:SMALLINT" json:"Resolution" yaml:"-"` PhotoDuration time.Duration `json:"Duration,omitempty" yaml:"Duration,omitempty"` PhotoColor int16 `json:"Color" yaml:"-"` CameraID uint `gorm:"index:idx_photos_camera_lens;default:1" json:"CameraID" yaml:"-"` CameraSerial string `gorm:"type:VARBINARY(160);" json:"CameraSerial" yaml:"CameraSerial,omitempty"` CameraSrc string `gorm:"type:VARBINARY(8);" json:"CameraSrc" yaml:"-"` LensID uint `gorm:"index:idx_photos_camera_lens;default:1" json:"LensID" yaml:"-"` Details *Details `` /* 127-byte string literal not displayed */ Camera *Camera `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Camera" yaml:"-"` Lens *Lens `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Lens" yaml:"-"` Cell *Cell `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Cell" yaml:"-"` Place *Place `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Place" yaml:"-"` Keywords []Keyword `json:"-" yaml:"-"` Albums []Album `json:"Albums" yaml:"-"` Files []File `yaml:"-"` Labels []PhotoLabel `yaml:"-"` CreatedBy string `gorm:"type:VARBINARY(42);index" json:"CreatedBy,omitempty" yaml:"CreatedBy,omitempty"` CreatedAt time.Time `yaml:"CreatedAt,omitempty"` UpdatedAt time.Time `yaml:"UpdatedAt,omitempty"` EditedAt *time.Time `yaml:"EditedAt,omitempty"` PublishedAt *time.Time `sql:"index" json:"PublishedAt,omitempty" yaml:"PublishedAt,omitempty"` CheckedAt *time.Time `sql:"index" yaml:"-"` EstimatedAt *time.Time `json:"EstimatedAt,omitempty" yaml:"-"` DeletedAt *time.Time `sql:"index" yaml:"DeletedAt,omitempty"` }
Photo represents a photo, all its properties, and link to all its images and sidecar files.
func NewUserPhoto ¶
NewUserPhoto creates a photo owned by a user.
func (*Photo) AddLabels ¶
AddLabels updates the entity with additional or updated label information.
func (*Photo) AdoptPlace ¶
AdoptPlace sets the place based on another photo.
func (*Photo) AllFilesMissing ¶
AllFilesMissing returns true, if all files for this photo are missing.
func (*Photo) Archive ¶
Archive removes the photo from albums and flags it as archived (soft delete).
func (*Photo) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Photo) BeforeSave ¶
BeforeSave ensures the existence of TakenAt properties before indexing or updating a photo
func (*Photo) ClassifyLabels ¶
ClassifyLabels returns all associated labels as classify.Labels
func (*Photo) CountryCode ¶
CountryCode returns the photo country code.
func (*Photo) CountryName ¶
CountryName returns the photo country name.
func (*Photo) DeletePermanently ¶
DeletePermanently permanently removes a photo from the index.
func (*Photo) EstimateCountry ¶
func (m *Photo) EstimateCountry()
EstimateCountry updates the photo with an estimated country if possible.
func (*Photo) EstimateLocation ¶
EstimateLocation updates the photo with an estimated place and country if possible.
func (*Photo) FirstOrCreate ¶
FirstOrCreate fetches an existing row from the database or inserts a new one.
func (*Photo) GetDetails ¶
GetDetails returns the photo description details.
func (*Photo) GetTakenAt ¶
GetTakenAt returns UTC time for TakenAtLocal.
func (*Photo) GetTakenAtLocal ¶
GetTakenAtLocal returns local time for TakenAt.
func (*Photo) GetTimeZone ¶
GetTimeZone uses PhotoLat and PhotoLng to guess the time zone of the photo.
func (*Photo) HasCountry ¶
HasCountry checks if the photo has a known country.
func (*Photo) HasDescription ¶
HasDescription checks if the photo has a description.
func (*Photo) HasLocation ¶
HasLocation tests if the photo has a known location.
func (*Photo) IndexKeywords ¶
IndexKeywords adds given keywords to the photo entry
func (*Photo) LoadFromYaml ¶
LoadFromYaml photo data from a YAML file.
func (*Photo) LoadLocation ¶
LoadLocation loads the photo location from the database if not done already.
func (*Photo) LocationLoaded ¶
LocationLoaded tests if the photo has a known location that is currently loaded.
func (*Photo) NoCameraSerial ¶
NoCameraSerial checks if the photo has no CameraSerial
func (*Photo) NoDescription ¶
NoDescription returns true if the photo has no description.
func (*Photo) Optimize ¶
func (m *Photo) Optimize(mergeMeta, mergeUuid, estimatePlace, force bool) (updated bool, merged Photos, err error)
Optimize photo data, improve if possible.
func (*Photo) PlaceLoaded ¶
PlaceLoaded checks if the photo has a known place that is currently loaded.
func (*Photo) PreloadAlbums ¶
func (m *Photo) PreloadAlbums()
PreloadAlbums prepares gorm scope to retrieve photo albums
func (*Photo) PreloadFiles ¶
func (m *Photo) PreloadFiles()
PreloadFiles prepares gorm scope to retrieve photo file
func (*Photo) PreloadKeywords ¶
func (m *Photo) PreloadKeywords()
PreloadKeywords prepares gorm scope to retrieve photo keywords
func (*Photo) PreloadMany ¶
func (m *Photo) PreloadMany()
PreloadMany prepares gorm scope to retrieve photo file, albums and keywords
func (*Photo) PrimaryFile ¶
PrimaryFile returns the primary file for this photo.
func (*Photo) QualityScore ¶
QualityScore returns a score based on photo properties like size and metadata.
func (*Photo) RemoveKeyword ¶
RemoveKeyword removes a word from photo keywords.
func (*Photo) RemoveLocation ¶
RemoveLocation removes the current location.
func (*Photo) RemoveLocationLabels ¶
func (m *Photo) RemoveLocationLabels()
RemoveLocationLabels removes existing location labels.
func (*Photo) ResolvePrimary ¶
ResolvePrimary ensures there is only one primary file for a photo.
func (*Photo) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Photo) SaveAsYaml ¶
SaveAsYaml saves photo data as YAML file.
func (*Photo) SaveDetails ¶
SaveDetails writes photo details to the database.
func (*Photo) SaveLabels ¶
SaveLabels updates the photo after labels have changed.
func (*Photo) SaveLocation ¶
SaveLocation updates location data and saves the photo metadata back to the index.
func (*Photo) SetAltitude ¶
SetAltitude sets the photo altitude if not empty and from an acceptable source.
func (*Photo) SetCameraSerial ¶
SetCameraSerial updates the camera serial number.
func (*Photo) SetCoordinates ¶
SetCoordinates changes the photo lat, lng and altitude if not empty and from an acceptable source.
func (*Photo) SetDescription ¶
SetDescription changes the photo description if not empty and from the same source.
func (*Photo) SetExposure ¶
SetExposure updates the photo exposure details.
func (*Photo) SetFavorite ¶
SetFavorite updates the favorite flag of a photo.
func (*Photo) SetPosition ¶
SetPosition sets a position estimate.
func (*Photo) SetPrimary ¶
SetPrimary sets a new primary file.
func (*Photo) SetTakenAt ¶
SetTakenAt changes the photo date if not empty and from the same source.
func (*Photo) SubjectKeywords ¶
SubjectKeywords returns keywords for all known subject names.
func (*Photo) SubjectNames ¶
SubjectNames returns all known subject names.
func (*Photo) SyncKeywordLabels ¶
SyncKeywordLabels maintains the label / photo relationship for existing labels and keywords.
func (*Photo) TimeZoneUTC ¶
TimeZoneUTC tests if the current time zone is UTC.
func (*Photo) TrustedLocation ¶
TrustedLocation tests if the photo has a known location from a trusted source.
func (*Photo) TrustedTime ¶
TrustedTime tests if the photo has a known date and time from a trusted source.
func (*Photo) UnknownCamera ¶
UnknownCamera test if the camera is unknown.
func (*Photo) UnknownCountry ¶
UnknownCountry checks if the photo has an unknown country.
func (*Photo) UnknownLens ¶
UnknownLens test if the lens is unknown.
func (*Photo) UnknownLocation ¶
UnknownLocation tests if the photo has an unknown location.
func (*Photo) UnknownPlace ¶
UnknownPlace checks if the photo has an unknown place.
func (*Photo) UpdateAndSaveTitle ¶
UpdateAndSaveTitle updates the photo title and saves it.
func (*Photo) UpdateDateFields ¶
func (m *Photo) UpdateDateFields()
UpdateDateFields updates internal date fields.
func (*Photo) UpdateDescription ¶
UpdateDescription updates the photo descriptions based on available metadata.
func (*Photo) UpdateLocation ¶
UpdateLocation updates location and labels based on latitude and longitude.
func (*Photo) UpdateQuality ¶
UpdateQuality updates the photo quality attribute.
func (*Photo) UpdateTimeZone ¶
UpdateTimeZone updates the time zone.
func (*Photo) UpdateTitle ¶
UpdateTitle updated the photo title based on location and labels.
func (*Photo) YamlFileName ¶
YamlFileName returns the YAML file name.
type PhotoAlbum ¶
type PhotoAlbum struct { PhotoUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"PhotoUID" yaml:"UID"` AlbumUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;index" json:"AlbumUID" yaml:"-"` Order int `json:"Order" yaml:"Order,omitempty"` Hidden bool `json:"Hidden" yaml:"Hidden,omitempty"` Missing bool `json:"Missing" yaml:"Missing,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"CreatedAt,omitempty"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` Photo *Photo `gorm:"PRELOAD:false" yaml:"-"` Album *Album `gorm:"PRELOAD:true" yaml:"-"` }
PhotoAlbum represents the many_to_many relation between Photo and Album
func FirstOrCreatePhotoAlbum ¶
func FirstOrCreatePhotoAlbum(m *PhotoAlbum) *PhotoAlbum
FirstOrCreatePhotoAlbum returns the existing row, inserts a new row or nil in case of errors.
func NewPhotoAlbum ¶
func NewPhotoAlbum(photoUid, albumUid string) *PhotoAlbum
NewPhotoAlbum creates a new photo and album mapping with UIDs.
func (*PhotoAlbum) Create ¶
func (m *PhotoAlbum) Create() error
Create inserts a new row to the database.
func (PhotoAlbum) TableName ¶
func (PhotoAlbum) TableName() string
TableName returns the entity table name.
type PhotoAlbumMap ¶
type PhotoAlbumMap map[string]PhotoAlbum
func (PhotoAlbumMap) Get ¶
func (m PhotoAlbumMap) Get(name, photoUid, albumUid string) PhotoAlbum
func (PhotoAlbumMap) Pointer ¶
func (m PhotoAlbumMap) Pointer(name, photoUid, albumUid string) *PhotoAlbum
type PhotoAlbums ¶
type PhotoAlbums []PhotoAlbum
type PhotoKeyword ¶
type PhotoKeyword struct { PhotoID uint `gorm:"primary_key;auto_increment:false"` KeywordID uint `gorm:"primary_key;auto_increment:false;index"` }
PhotoKeyword represents the many-to-many relation between Photo and Keyword
func FirstOrCreatePhotoKeyword ¶
func FirstOrCreatePhotoKeyword(m *PhotoKeyword) *PhotoKeyword
FirstOrCreatePhotoKeyword returns the existing row, inserts a new row or nil in case of errors.
func NewPhotoKeyword ¶
func NewPhotoKeyword(photoID, keywordID uint) *PhotoKeyword
NewPhotoKeyword registers a new PhotoKeyword relation
func (*PhotoKeyword) Create ¶
func (m *PhotoKeyword) Create() error
Create inserts a new row to the database.
func (PhotoKeyword) TableName ¶
func (PhotoKeyword) TableName() string
TableName returns the entity table name.
type PhotoKeywordMap ¶
type PhotoKeywordMap map[string]PhotoKeyword
type PhotoLabel ¶
type PhotoLabel struct { PhotoID uint `gorm:"primary_key;auto_increment:false"` LabelID uint `gorm:"primary_key;auto_increment:false;index"` LabelSrc string `gorm:"type:VARBINARY(8);"` Uncertainty int `gorm:"type:SMALLINT"` Photo *Photo `gorm:"PRELOAD:false"` Label *Label `gorm:"PRELOAD:true"` }
PhotoLabel represents the many-to-many relation between Photo and label. Labels are weighted by uncertainty (100 - confidence)
func FirstOrCreatePhotoLabel ¶
func FirstOrCreatePhotoLabel(m *PhotoLabel) *PhotoLabel
FirstOrCreatePhotoLabel returns the existing row, inserts a new row or nil in case of errors.
func NewPhotoLabel ¶
func NewPhotoLabel(photoID, labelID uint, uncertainty int, source string) *PhotoLabel
NewPhotoLabel registers a new PhotoLabel relation with an uncertainty and a source of label
func (*PhotoLabel) ClassifyLabel ¶
func (m *PhotoLabel) ClassifyLabel() classify.Label
ClassifyLabel returns the label as classify.Label
func (*PhotoLabel) Create ¶
func (m *PhotoLabel) Create() error
Create inserts a new row to the database.
func (*PhotoLabel) Save ¶
func (m *PhotoLabel) Save() error
Save updates the record in the database or inserts a new record if it does not already exist.
func (PhotoLabel) TableName ¶
func (PhotoLabel) TableName() string
TableName returns the entity table name.
func (*PhotoLabel) Update ¶
func (m *PhotoLabel) Update(attr string, value interface{}) error
Update a column in the database.
func (*PhotoLabel) Updates ¶
func (m *PhotoLabel) Updates(values interface{}) error
Updates multiple columns in the database.
type PhotoLabels ¶
type PhotoLabels []PhotoLabel
type PhotoUser ¶
type PhotoUser struct { UID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"UID" yaml:"UID"` UserUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;index" json:"UserUID,omitempty" yaml:"UserUID,omitempty"` TeamUID string `gorm:"type:VARBINARY(42);index" json:"TeamUID,omitempty" yaml:"TeamUID,omitempty"` Perm uint `json:"Perm,omitempty" yaml:"Perm,omitempty"` }
PhotoUser represents the user and group ownership of a Photo and the corresponding permissions.
func FirstOrCreatePhotoUser ¶
FirstOrCreatePhotoUser returns the existing record or inserts a new record if it does not already exist.
func NewPhotoUser ¶
NewPhotoUser creates a new entity model.
type Place ¶
type Place struct { ID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"PlaceID" yaml:"PlaceID"` PlaceLabel string `gorm:"type:VARCHAR(400);" json:"Label" yaml:"Label"` PlaceDistrict string `gorm:"type:VARCHAR(100);index;" json:"District" yaml:"District,omitempty"` PlaceCity string `gorm:"type:VARCHAR(100);index;" json:"City" yaml:"City,omitempty"` PlaceState string `gorm:"type:VARCHAR(100);index;" json:"State" yaml:"State,omitempty"` PlaceCountry string `gorm:"type:VARBINARY(2);" json:"Country" yaml:"Country,omitempty"` PlaceKeywords string `gorm:"type:VARCHAR(300);" json:"Keywords" yaml:"Keywords,omitempty"` PlaceFavorite bool `json:"Favorite" yaml:"Favorite,omitempty"` PhotoCount int `gorm:"default:1" json:"PhotoCount" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` }
Place represents a distinct region identified by city, district, state, and country.
func FirstOrCreatePlace ¶
FirstOrCreatePlace fetches an existing row, inserts a new row or nil in case of errors.
func (Place) CityContains ¶
CityContains checks if the location city contains the text string
func (Place) CountryCode ¶
CountryCode returns place CountryCode
func (Place) CountryName ¶
CountryName returns place CountryName
type Priorities ¶
type Reaction ¶
type Reaction struct { UID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"UID,omitempty" yaml:"UID,omitempty"` UserUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"UserUID,omitempty" yaml:"UserUID,omitempty"` Reaction string `gorm:"type:VARBINARY(64);primary_key;auto_increment:false" json:"Reaction,omitempty" yaml:"Reaction,omitempty"` Reacted int `json:"Reacted,omitempty" yaml:"Reacted,omitempty"` ReactedAt *time.Time `sql:"index" json:"ReactedAt,omitempty" yaml:"ReactedAt,omitempty"` }
Reaction represents a human response to content such as photos and albums.
func FindReaction ¶
FindReaction returns the matching Reaction record or nil if it was not found.
func NewReaction ¶
NewReaction creates a new Reaction struct.
func (*Reaction) InvalidUID ¶
InvalidUID checks if the entity or user uid are missing or incorrect.
func (*Reaction) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
type ReactionMap ¶
func (ReactionMap) Get ¶
func (m ReactionMap) Get(name string) Reaction
func (ReactionMap) Pointer ¶
func (m ReactionMap) Pointer(name string) *Reaction
type Service ¶
type Service struct { ID uint `gorm:"primary_key"` AccName string `gorm:"type:VARCHAR(160);"` AccOwner string `gorm:"type:VARCHAR(160);"` AccURL string `gorm:"type:VARCHAR(255);"` AccType string `gorm:"type:VARBINARY(255);"` AccKey string `gorm:"type:VARBINARY(255);"` AccUser string `gorm:"type:VARBINARY(255);"` AccPass string `gorm:"type:VARBINARY(255);"` AccTimeout string `gorm:"type:VARBINARY(16);"` AccError string `gorm:"type:VARBINARY(512);"` AccErrors int AccSync bool RetryLimit int SyncPath string `gorm:"type:VARBINARY(1024);"` SyncStatus string `gorm:"type:VARBINARY(16);"` SyncInterval int SyncDate sql.NullTime `deepcopier:"skip"` SyncUpload bool SyncDownload bool SyncFilenames bool SyncRaw bool CreatedAt time.Time `deepcopier:"skip"` UpdatedAt time.Time `deepcopier:"skip"` DeletedAt *time.Time `deepcopier:"skip" sql:"index"` }
Service represents a remote service, e.g. for uploading, downloading or syncing media files.
Field Descriptions: - AccTimeout configures the timeout for requests, options: "", high, medium, low, none. - AccErrors holds the number of connection errors since the last reset. - AccShare enables manual upload, see SharePath, ShareSize, and ShareExpires. - AccSync enables automatic file synchronization, see SyncDownload and SyncUpload. - RetryLimit specifies the number of retry attempts, a negative value disables the limit.
func AddService ¶
AddService adds a new service account to the database.
func (*Service) Directories ¶
Directories returns a list of directories or albums in an account.
func (*Service) ResetErrors ¶
ResetErrors resets the service and related file error messages and counters.
func (*Service) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Service) ShareOriginals ¶
ShareOriginals tests if the unmodified originals should be shared.
type ServiceMap ¶
type Session ¶
type Session struct { ID string `gorm:"type:VARBINARY(2048);primary_key;auto_increment:false;" json:"-" yaml:"ID"` UserUID string `gorm:"type:VARBINARY(42);index;default:'';" json:"UserUID" yaml:"UserUID,omitempty"` UserName string `gorm:"size:200;index;" json:"UserName" yaml:"UserName,omitempty"` ClientUID string `gorm:"type:VARBINARY(42);index;default:'';" json:"ClientUID" yaml:"ClientUID,omitempty"` ClientName string `gorm:"size:200;default:'';" json:"ClientName" yaml:"ClientName,omitempty"` ClientIP string `gorm:"size:64;column:client_ip;index" json:"ClientIP" yaml:"ClientIP,omitempty"` AuthProvider string `gorm:"type:VARBINARY(128);default:'';" json:"AuthProvider" yaml:"AuthProvider,omitempty"` AuthMethod string `gorm:"type:VARBINARY(128);default:'';" json:"AuthMethod" yaml:"AuthMethod,omitempty"` AuthDomain string `gorm:"type:VARBINARY(255);default:'';" json:"AuthDomain" yaml:"AuthDomain,omitempty"` AuthID string `gorm:"type:VARBINARY(255);index;default:'';" json:"-" yaml:"AuthID,omitempty"` AuthScope string `gorm:"size:1024;default:'';" json:"AuthScope" yaml:"AuthScope,omitempty"` GrantType string `gorm:"type:VARBINARY(64);default:'';" json:"GrantType" yaml:"GrantType,omitempty"` LastActive int64 `json:"LastActive" yaml:"LastActive,omitempty"` SessExpires int64 `gorm:"index" json:"Expires" yaml:"Expires,omitempty"` SessTimeout int64 `json:"Timeout" yaml:"Timeout,omitempty"` PreviewToken string `gorm:"type:VARBINARY(64);column:preview_token;default:'';" json:"-" yaml:"-"` DownloadToken string `gorm:"type:VARBINARY(64);column:download_token;default:'';" json:"-" yaml:"-"` AccessToken string `gorm:"type:VARBINARY(4096);column:access_token;default:'';" json:"-" yaml:"-"` RefreshToken string `gorm:"type:VARBINARY(512);column:refresh_token;default:'';" json:"-" yaml:"-"` IdToken string `gorm:"type:VARBINARY(1024);column:id_token;default:'';" json:"IdToken,omitempty" yaml:"IdToken,omitempty"` UserAgent string `gorm:"size:512;" json:"UserAgent" yaml:"UserAgent,omitempty"` DataJSON json.RawMessage `gorm:"type:VARBINARY(4096);" json:"-" yaml:"Data,omitempty"` RefID string `gorm:"type:VARBINARY(16);default:'';" json:"ID" yaml:"-"` LoginIP string `gorm:"size:64;column:login_ip" json:"LoginIP" yaml:"-"` LoginAt time.Time `json:"LoginAt" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"CreatedAt"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"UpdatedAt"` Status int `gorm:"-" json:"Status" yaml:"-"` // contains filtered or unexported fields }
Session represents a User session.
func AddClientSession ¶
func AddClientSession(clientName string, expiresIn int64, scope string, grantType authn.GrantType, user *User) (*Session, error)
AddClientSession creates a new session for authenticating a client application.
func FindSession ¶
FindSession finds a session based on the id string or returns nil if it does not exist.
func FindSessionByAuthToken ¶
FindSessionByAuthToken finds a session based on the auth token string or returns nil if it does not exist.
func FindSessionByRefID ¶
FindSessionByRefID finds an existing session by ref ID.
func NewClientSession ¶
func NewClientSession(clientName string, expiresIn int64, scope string, grantType authn.GrantType, user *User) *Session
NewClientSession returns a new session that authenticates a client application.
func NewSession ¶
NewSession creates a new session with the expiration and idle time specified in seconds (-1 for infinite).
func SessionStatusForbidden ¶
func SessionStatusForbidden() *Session
SessionStatusForbidden returns a session with status forbidden (403).
func SessionStatusTooManyRequests ¶
func SessionStatusTooManyRequests() *Session
SessionStatusTooManyRequests returns a session with status too many requests (429).
func SessionStatusUnauthorized ¶
func SessionStatusUnauthorized() *Session
SessionStatusUnauthorized returns a session with status unauthorized (401).
func (*Session) Abort ¶
Abort aborts the request with the appropriate error code if access to the requested resource is denied.
func (*Session) AuthGrantType ¶
AuthGrantType returns the session's grant type as authn.GrantType.
func (*Session) AuthTokenType ¶
AuthTokenType returns the authentication token type.
func (*Session) BeforeCreate ¶
BeforeCreate creates a random UID if needed before inserting a new row to the database.
func (*Session) Cache ¶
func (m *Session) Cache()
Cache caches the session with the default expiration duration.
func (*Session) CacheDuration ¶
CacheDuration updates the session entity cache.
func (*Session) ChangePassword ¶
ChangePassword changes the password of the current user.
func (*Session) ClearCache ¶
func (m *Session) ClearCache()
ClearCache deletes the session from the cache.
func (*Session) ClientInfo ¶
ClientInfo returns the session's client identifier string.
func (*Session) ClientRole ¶
ClientRole returns the session's client ACL role.
func (*Session) Data ¶
func (m *Session) Data() (data *SessionData)
Data returns the session's data.
func (*Session) HasRegisteredUser ¶
HasRegisteredUser checks if the session belongs to a registered user.
func (*Session) HttpStatus ¶
HttpStatus returns the session status as HTTP code for the client.
func (*Session) InsufficientScope ¶
InsufficientScope checks if the scope does not include access to specified resource.
func (*Session) Invalid ¶
Invalid checks if the session does not belong to a registered user or a visitor with shares.
func (*Session) IsRegistered ¶
IsRegistered checks if the session belongs to a registered user account.
func (*Session) IsSuperAdmin ¶
IsSuperAdmin checks if the session belongs to a registered super admin user.
func (*Session) Method ¶
func (m *Session) Method() authn.MethodType
Method returns the authentication method.
func (*Session) NotRegistered ¶
NotRegistered checks if the user is not registered with an own account.
func (*Session) Provider ¶
func (m *Session) Provider() authn.ProviderType
Provider returns the authentication provider.
func (*Session) RedeemToken ¶
RedeemToken updates shared entity UIDs using the specified token.
func (*Session) RefreshUser ¶
RefreshUser updates the cached user data.
func (*Session) Regenerate ¶
Regenerate (re-)initializes the session with a random auth token, ID, and RefID.
func (*Session) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Session) SetAuthToken ¶
SetAuthToken sets a custom authentication token.
func (*Session) SetClientIP ¶
SetClientIP sets the client IP address.
func (*Session) SetClientName ¶
SetClientName changes the session's client name.
func (*Session) SetContext ¶
SetContext sets the session request context.
func (*Session) SetData ¶
func (m *Session) SetData(data *SessionData) *Session
SetData updates the session's data.
func (*Session) SetDownloadToken ¶
SetDownloadToken updates the download token if not empty.
func (*Session) SetExpiresIn ¶
SetExpiresIn sets the session lifetime in seconds (-1 for infinite).
func (*Session) SetGrantType ¶
SetGrantType sets the session's grant type if no type has been set yet.
func (*Session) SetMethod ¶
func (m *Session) SetMethod(method authn.MethodType) *Session
SetMethod sets a custom authentication method.
func (*Session) SetPreviewToken ¶
SetPreviewToken updates the preview token if not empty.
func (*Session) SetProvider ¶
func (m *Session) SetProvider(provider authn.ProviderType) *Session
SetProvider updates the session's authentication provider.
func (*Session) SetTimeout ¶
SetTimeout sets the session idle time in seconds (-1 for infinite).
func (*Session) SetUserAgent ¶
SetUserAgent sets the client user agent.
func (*Session) SharedUIDs ¶
SharedUIDs returns shared entity UIDs.
func (*Session) TimeoutAt ¶
TimeoutAt returns the time at which the session will expire due to inactivity.
func (*Session) UpdateContext ¶
UpdateContext sets the session request context and updates the session entry in the database if it has changed.
func (*Session) UpdateLastActive ¶
UpdateLastActive sets the time of last activity to now and optionally also updates the auth_sessions table.
func (*Session) Valid ¶
Valid checks whether the session belongs to a registered user or a visitor with shares.
func (*Session) ValidateScope ¶
ValidateScope checks if the scope does not exclude access to specified resource.
type SessionData ¶
type SessionData struct { Tokens []string `json:"tokens"` // Share Tokens. }
SessionData represents User Session data.
func NewSessionData ¶
func NewSessionData() *SessionData
NewSessionData creates a new session data struct and returns a pointer to it.
func (SessionData) HasShare ¶
func (data SessionData) HasShare(uid string) bool
HasShare if the session includes the specified share
func (SessionData) HasShares ¶
func (data SessionData) HasShares() bool
HasShares checks if the session has any shares.
func (SessionData) NoShares ¶
func (data SessionData) NoShares() bool
NoShares checks if the session has no shares yet.
func (*SessionData) RedeemToken ¶
func (data *SessionData) RedeemToken(token string) (n int)
RedeemToken appends a new token and updates the list of shared UIDs in the session data.
func (*SessionData) RefreshShares ¶
func (data *SessionData) RefreshShares() *SessionData
RefreshShares updates the list of shared UIDs in the session data.
func (SessionData) SharedUIDs ¶
func (data SessionData) SharedUIDs() UIDs
SharedUIDs returns shared entity UIDs.
type SessionMap ¶
func (SessionMap) Get ¶
func (m SessionMap) Get(name string) Session
func (SessionMap) Pointer ¶
func (m SessionMap) Pointer(name string) *Session
type StringMap ¶
StringMap is a string (reverse) lookup map that can be accessed by multiple goroutines.
func NewStringMap ¶
NewStringMap creates a new string (reverse) lookup map.
func (*StringMap) Log ¶
Log returns a string sanitized for logging and using the key as fallback value.
type Subject ¶
type Subject struct { SubjUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"UID" yaml:"UID"` SubjType string `gorm:"type:VARBINARY(8);default:'';" json:"Type,omitempty" yaml:"Type,omitempty"` SubjSrc string `gorm:"type:VARBINARY(8);default:'';" json:"Src,omitempty" yaml:"Src,omitempty"` SubjSlug string `gorm:"type:VARBINARY(160);index;default:'';" json:"Slug" yaml:"-"` SubjName string `gorm:"size:160;unique_index;default:'';" json:"Name" yaml:"Name"` SubjAlias string `gorm:"size:160;default:'';" json:"Alias" yaml:"Alias"` SubjAbout string `gorm:"size:512;" json:"About" yaml:"About,omitempty"` SubjBio string `gorm:"size:2048;" json:"Bio" yaml:"Bio,omitempty"` SubjNotes string `gorm:"size:1024;" json:"Notes,omitempty" yaml:"Notes,omitempty"` SubjFavorite bool `gorm:"default:false;" json:"Favorite" yaml:"Favorite,omitempty"` SubjHidden bool `gorm:"default:false;" json:"Hidden" yaml:"Hidden,omitempty"` SubjPrivate bool `gorm:"default:false;" json:"Private" yaml:"Private,omitempty"` SubjExcluded bool `gorm:"default:false;" json:"Excluded" yaml:"Excluded,omitempty"` FileCount int `gorm:"default:0;" json:"FileCount" yaml:"-"` PhotoCount int `gorm:"default:0;" json:"PhotoCount" yaml:"-"` Thumb string `gorm:"type:VARBINARY(128);index;default:'';" json:"Thumb" yaml:"Thumb,omitempty"` ThumbSrc string `gorm:"type:VARBINARY(8);default:'';" json:"ThumbSrc,omitempty" yaml:"ThumbSrc,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` DeletedAt *time.Time `sql:"index" json:"DeletedAt,omitempty" yaml:"-"` }
Subject represents a named photo subject, typically a person.
func FindSubject ¶
FindSubject returns an existing entity if exists.
func FindSubjectByName ¶
FindSubjectByName find an existing subject by name.
func FirstOrCreateSubject ¶
FirstOrCreateSubject returns the existing entity, inserts a new entity or nil in case of errors.
func NewSubject ¶
NewSubject returns a new entity.
func (*Subject) AfterDelete ¶
AfterDelete resets file and photo counters when the entity was deleted.
func (*Subject) BeforeCreate ¶
BeforeCreate creates a random uid if needed before inserting a new row to the database.
func (*Subject) DeletePermanently ¶
DeletePermanently permanently removes a subject from the index after is has been soft deleted.
func (*Subject) RefreshPhotos ¶
RefreshPhotos flags related photos for metadata maintenance.
func (*Subject) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*Subject) UpdateMarkerNames ¶
UpdateMarkerNames updates related marker names.
func (*Subject) UpdateName ¶
UpdateName changes and saves the subject's name in the index.
type SubjectMap ¶
func (SubjectMap) Get ¶
func (m SubjectMap) Get(name string) Subject
func (SubjectMap) Pointer ¶
func (m SubjectMap) Pointer(name string) *Subject
type Tables ¶
type Tables map[string]interface{}
type UIDs ¶
type UIDs []string
UIDs represents a slice of unique ID strings.
type User ¶
type User struct { ID int `gorm:"primary_key" json:"ID" yaml:"-"` UUID string `gorm:"type:VARBINARY(64);column:user_uuid;index;" json:"UUID,omitempty" yaml:"UUID,omitempty"` UserUID string `gorm:"type:VARBINARY(42);column:user_uid;unique_index;" json:"UID" yaml:"UID"` AuthProvider string `gorm:"type:VARBINARY(128);default:'';" json:"AuthProvider" yaml:"AuthProvider,omitempty"` AuthMethod string `gorm:"type:VARBINARY(128);default:'';" json:"AuthMethod" yaml:"AuthMethod,omitempty"` AuthID string `gorm:"type:VARBINARY(255);index;default:'';" json:"AuthID" yaml:"AuthID,omitempty"` UserName string `gorm:"size:200;index;" json:"Name" yaml:"Name,omitempty"` DisplayName string `gorm:"size:200;" json:"DisplayName" yaml:"DisplayName,omitempty"` UserEmail string `gorm:"size:255;index;" json:"Email" yaml:"Email,omitempty"` BackupEmail string `gorm:"size:255;" json:"BackupEmail,omitempty" yaml:"BackupEmail,omitempty"` UserRole string `gorm:"size:64;default:'';" json:"Role" yaml:"Role,omitempty"` UserAttr string `gorm:"size:1024;" json:"Attr" yaml:"Attr,omitempty"` SuperAdmin bool `json:"SuperAdmin" yaml:"SuperAdmin,omitempty"` CanLogin bool `json:"CanLogin" yaml:"CanLogin,omitempty"` LoginAt *time.Time `json:"LoginAt" yaml:"LoginAt,omitempty"` ExpiresAt *time.Time `sql:"index" json:"ExpiresAt,omitempty" yaml:"ExpiresAt,omitempty"` WebDAV bool `gorm:"column:webdav;" json:"WebDAV" yaml:"WebDAV,omitempty"` BasePath string `gorm:"type:VARBINARY(1024);" json:"BasePath" yaml:"BasePath,omitempty"` UploadPath string `gorm:"type:VARBINARY(1024);" json:"UploadPath" yaml:"UploadPath,omitempty"` CanInvite bool `json:"CanInvite" yaml:"CanInvite,omitempty"` InviteToken string `gorm:"type:VARBINARY(64);index;" json:"-" yaml:"-"` InvitedBy string `gorm:"size:64;" json:"-" yaml:"-"` VerifyToken string `gorm:"type:VARBINARY(64);" json:"-" yaml:"-"` VerifiedAt *time.Time `json:"VerifiedAt,omitempty" yaml:"VerifiedAt,omitempty"` ConsentAt *time.Time `json:"ConsentAt,omitempty" yaml:"ConsentAt,omitempty"` BornAt *time.Time `sql:"index" json:"BornAt,omitempty" yaml:"BornAt,omitempty"` UserDetails *UserDetails `gorm:"PRELOAD:true;foreignkey:UserUID;association_foreignkey:UserUID;" json:"Details,omitempty" yaml:"Details,omitempty"` UserSettings *UserSettings `gorm:"PRELOAD:true;foreignkey:UserUID;association_foreignkey:UserUID;" json:"Settings,omitempty" yaml:"Settings,omitempty"` ResetToken string `gorm:"type:VARBINARY(64);" json:"-" yaml:"-"` PreviewToken string `gorm:"type:VARBINARY(64);column:preview_token;" json:"-" yaml:"-"` DownloadToken string `gorm:"type:VARBINARY(64);column:download_token;" json:"-" yaml:"-"` Thumb string `gorm:"type:VARBINARY(128);index;default:'';" json:"Thumb" yaml:"Thumb,omitempty"` ThumbSrc string `gorm:"type:VARBINARY(8);default:'';" json:"ThumbSrc" yaml:"ThumbSrc,omitempty"` RefID string `gorm:"type:VARBINARY(16);" json:"-" yaml:"-"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` DeletedAt *time.Time `sql:"index" json:"DeletedAt,omitempty" yaml:"-"` }
User represents a person that may optionally log in as user.
func FindLocalUser ¶
FindLocalUser returns the matching local user or nil if it was not found.
func FindUserByName ¶
FindUserByName returns the matching user or nil if it was not found.
func FindUserByUID ¶
FindUserByUID returns the matching user or nil if it was not found.
func FirstOrCreateUser ¶
FirstOrCreateUser returns an existing record, inserts a new record, or returns nil in case of an error.
func (*User) ActivatePasscode ¶
ActivatePasscode activates two-factor authentication with a passcode.
func (*User) Attr ¶
Attr returns optional user account attributes as sanitized string. Example: https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/useraccountcontrol-manipulate-account-properties
func (*User) BeforeCreate ¶
BeforeCreate sets a random UID if needed before inserting a new row to the database.
func (*User) CanUseWebDAV ¶
CanUseWebDAV checks whether the user is allowed to use WebDAV to synchronize files.
func (*User) DeactivatePasscode ¶
DeactivatePasscode disables two-factor authentication with a passcode.
func (*User) DefaultBasePath ¶
DefaultBasePath returns the default base path of the user based on the user name.
func (*User) DeleteSessions ¶
DeleteSessions deletes all active user sessions except those passed as argument.
func (*User) Details ¶
func (m *User) Details() *UserDetails
Details returns user profile information and initializes it if needed.
func (*User) GenerateTokens ¶
GenerateTokens generates preview and download tokens as needed.
func (*User) GetBasePath ¶
GetBasePath returns the user's relative base path.
func (*User) GetUploadPath ¶
GetUploadPath returns the user's relative upload path.
func (*User) HasProvider ¶
func (m *User) HasProvider(t authn.ProviderType) bool
HasProvider checks if the user has the given auth provider.
func (*User) HasSharedAccessOnly ¶
HasSharedAccessOnly checks if the user as only access to shared resources.
func (*User) InitAccount ¶
InitAccount sets the name and password of the initial admin account.
func (*User) InvalidPasscode ¶
InvalidPasscode returns true if the specified passcode cannot be verified or is invalid.
func (*User) InvalidPassword ¶
InvalidPassword returns true if the specified password is invalid or the account is not registered.
func (*User) IsDisabled ¶
IsDisabled checks if the user account has been deleted or has expired.
func (*User) IsRegistered ¶
IsRegistered checks if this user has a registered account with a valid ID, username, and role.
func (*User) IsSuperAdmin ¶
IsSuperAdmin checks if the user is a super admin.
func (*User) LoadRelated ¶
LoadRelated loads related settings and details.
func (*User) Method ¶
func (m *User) Method() authn.MethodType
Method returns the authentication method.
func (*User) NotRegistered ¶
NotRegistered checks if the user is not registered with an own account.
func (*User) PrivilegeLevelChange ¶
PrivilegeLevelChange checks if saving the form changes the user privileges.
func (*User) Provider ¶
func (m *User) Provider() authn.ProviderType
Provider returns the authentication provider name.
func (*User) RedeemToken ¶
RedeemToken updates shared entity UIDs using the specified token.
func (*User) RefreshShares ¶
RefreshShares updates the list of shares.
func (*User) RegenerateTokens ¶
RegenerateTokens replaces the existing preview and download tokens.
func (*User) RestoreFromCli ¶
RestoreFromCli restored the account from a CLI context.
func (*User) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*User) SaveRelated ¶
SaveRelated saves related settings and details.
func (*User) SetBasePath ¶
SetBasePath changes the user's relative base path.
func (*User) SetDisplayName ¶
SetDisplayName sets a new display name and, if possible, splits it into its components.
func (*User) SetFamilyName ¶
SetFamilyName updates the user's family name.
func (*User) SetFormValues ¶
SetFormValues sets the values specified in the form.
func (*User) SetGivenName ¶
SetGivenName updates the user's given name.
func (*User) SetMethod ¶
func (m *User) SetMethod(method authn.MethodType) *User
SetMethod sets a custom authentication method.
func (*User) SetPassword ¶
SetPassword sets a new password stored as hash.
func (*User) SetProvider ¶
func (m *User) SetProvider(t authn.ProviderType) *User
SetProvider set the authentication provider.
func (*User) SetUploadPath ¶
SetUploadPath changes the user's relative upload path.
func (*User) SetUsername ¶
SetUsername sets the login username to the specified string.
func (*User) SetValuesFromCli ¶
SetValuesFromCli updates the entity values from a CLI context and validates them.
func (*User) Settings ¶
func (m *User) Settings() *UserSettings
Settings returns the user settings and initializes them if necessary.
func (*User) UpdateLoginTime ¶
UpdateLoginTime updates the login timestamp and returns it if successful.
func (*User) UpdateUsername ¶
UpdateUsername changes the login name in the database.
func (*User) Validate ¶
Validate checks if username, email and role are valid and returns an error otherwise.
func (*User) VerifyPasscode ¶
VerifyPasscode checks if the specified passcode could be verified and is valid.
func (*User) VerifyPassword ¶
VerifyPassword checks if the user has the specified password and the account is registered.
type UserDetails ¶
type UserDetails struct { UserUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"-" yaml:"-"` SubjUID string `gorm:"type:VARBINARY(42);index;" json:"SubjUID,omitempty" yaml:"SubjUID,omitempty"` SubjSrc string `gorm:"type:VARBINARY(8);default:'';" json:"-" yaml:"SubjSrc,omitempty"` PlaceID string `gorm:"type:VARBINARY(42);index;default:'zz'" json:"-" yaml:"-"` PlaceSrc string `gorm:"type:VARBINARY(8);" json:"-" yaml:"PlaceSrc,omitempty"` CellID string `gorm:"type:VARBINARY(42);index;default:'zz'" json:"-" yaml:"CellID,omitempty"` BirthYear int `json:"BirthYear" yaml:"BirthYear,omitempty"` BirthMonth int `json:"BirthMonth" yaml:"BirthMonth,omitempty"` BirthDay int `json:"BirthDay" yaml:"BirthDay,omitempty"` NameTitle string `gorm:"size:32;" json:"NameTitle" yaml:"NameTitle,omitempty"` GivenName string `gorm:"size:64;" json:"GivenName" yaml:"GivenName,omitempty"` MiddleName string `gorm:"size:64;" json:"MiddleName" yaml:"MiddleName,omitempty"` FamilyName string `gorm:"size:64;" json:"FamilyName" yaml:"FamilyName,omitempty"` NameSuffix string `gorm:"size:32;" json:"NameSuffix" yaml:"NameSuffix,omitempty"` NickName string `gorm:"size:64;" json:"NickName" yaml:"NickName,omitempty"` NameSrc string `gorm:"type:VARBINARY(8);" json:"NameSrc" yaml:"NameSrc,omitempty"` UserGender string `gorm:"size:16;" json:"Gender" yaml:"Gender,omitempty"` UserAbout string `gorm:"size:512;" json:"About" yaml:"About,omitempty"` UserBio string `gorm:"size:2048;" json:"Bio" yaml:"Bio,omitempty"` UserLocation string `gorm:"size:512;" json:"Location" yaml:"Location,omitempty"` UserCountry string `gorm:"type:VARBINARY(2);" json:"Country" yaml:"Country,omitempty"` UserPhone string `gorm:"size:32;" json:"Phone" yaml:"Phone,omitempty"` SiteURL string `gorm:"type:VARBINARY(512);column:site_url" json:"SiteURL" yaml:"SiteURL,omitempty"` ProfileURL string `gorm:"type:VARBINARY(512);column:profile_url" json:"ProfileURL" yaml:"ProfileURL,omitempty"` FeedURL string `gorm:"type:VARBINARY(512);column:feed_url" json:"FeedURL,omitempty" yaml:"FeedURL,omitempty"` AvatarURL string `gorm:"type:VARBINARY(512);column:avatar_url" json:"AvatarURL,omitempty" yaml:"AvatarURL,omitempty"` OrgTitle string `gorm:"size:64;" json:"OrgTitle" yaml:"OrgTitle,omitempty"` OrgName string `gorm:"size:128;" json:"OrgName" yaml:"OrgName,omitempty"` OrgEmail string `gorm:"size:255;index;" json:"OrgEmail" yaml:"OrgEmail,omitempty"` OrgPhone string `gorm:"size:32;" json:"OrgPhone" yaml:"OrgPhone,omitempty"` OrgURL string `gorm:"type:VARBINARY(512);column:org_url" json:"OrgURL" yaml:"OrgURL,omitempty"` IdURL string `gorm:"type:VARBINARY(512);column:id_url;" json:"IdURL,omitempty" yaml:"IdURL,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` }
UserDetails represents user profile information.
func NewUserDetails ¶
func NewUserDetails(uid string) *UserDetails
NewUserDetails creates new user details.
func (*UserDetails) Create ¶
func (m *UserDetails) Create() error
Create new entity in the database.
func (*UserDetails) DisplayName ¶
func (m *UserDetails) DisplayName() string
DisplayName returns a display name based on the user details.
func (*UserDetails) HasID ¶
func (m *UserDetails) HasID() bool
HasID tests if the entity has a valid uid.
func (*UserDetails) Save ¶
func (m *UserDetails) Save() error
Save updates the record in the database or inserts a new record if it does not already exist.
func (*UserDetails) SetFamilyName ¶
func (m *UserDetails) SetFamilyName(name string) *UserDetails
SetFamilyName updates the user's family name.
func (*UserDetails) SetGivenName ¶
func (m *UserDetails) SetGivenName(name string) *UserDetails
SetGivenName updates the user's given name.
func (UserDetails) TableName ¶
func (UserDetails) TableName() string
TableName returns the entity table name.
func (*UserDetails) Updates ¶
func (m *UserDetails) Updates(values interface{}) error
Updates multiple properties in the database.
type UserSettings ¶
type UserSettings struct { UserUID string `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"-" yaml:"UserUID"` UITheme string `gorm:"type:VARBINARY(32);column:ui_theme;" json:"UITheme,omitempty" yaml:"UITheme,omitempty"` UILanguage string `gorm:"type:VARBINARY(32);column:ui_language;" json:"UILanguage,omitempty" yaml:"UILanguage,omitempty"` UITimeZone string `gorm:"type:VARBINARY(64);column:ui_time_zone;" json:"UITimeZone,omitempty" yaml:"UITimeZone,omitempty"` MapsStyle string `gorm:"type:VARBINARY(32);" json:"MapsStyle,omitempty" yaml:"MapsStyle,omitempty"` MapsAnimate int `gorm:"default:0;" json:"MapsAnimate,omitempty" yaml:"MapsAnimate,omitempty"` IndexPath string `gorm:"type:VARBINARY(1024);" json:"IndexPath,omitempty" yaml:"IndexPath,omitempty"` IndexRescan int `gorm:"default:0;" json:"IndexRescan,omitempty" yaml:"IndexRescan,omitempty"` ImportPath string `gorm:"type:VARBINARY(1024);" json:"ImportPath,omitempty" yaml:"ImportPath,omitempty"` ImportMove int `gorm:"default:0;" json:"ImportMove,omitempty" yaml:"ImportMove,omitempty"` DownloadOriginals int `gorm:"default:0;" json:"DownloadOriginals,omitempty" yaml:"DownloadOriginals,omitempty"` DownloadMediaRaw int `gorm:"default:0;" json:"DownloadMediaRaw,omitempty" yaml:"DownloadMediaRaw,omitempty"` DownloadMediaSidecar int `gorm:"default:0;" json:"DownloadMediaSidecar,omitempty" yaml:"DownloadMediaSidecar,omitempty"` UploadPath string `gorm:"type:VARBINARY(1024);" json:"UploadPath,omitempty" yaml:"UploadPath,omitempty"` DefaultPage string `gorm:"type:VARBINARY(128);" json:"DefaultPage,omitempty" yaml:"DefaultPage,omitempty"` CreatedAt time.Time `json:"CreatedAt" yaml:"-"` UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"` }
UserSettings represents user preferences.
func NewUserSettings ¶
func NewUserSettings(uid string) *UserSettings
NewUserSettings creates new user preferences.
func (*UserSettings) Apply ¶
func (m *UserSettings) Apply(s *customize.Settings) *UserSettings
Apply applies the settings provided to the user preferences and keeps current values if they are not specified.
func (*UserSettings) ApplyTo ¶
func (m *UserSettings) ApplyTo(s *customize.Settings) *customize.Settings
ApplyTo applies the user preferences to the client settings and keeps the default settings if they are not specified.
func (*UserSettings) Create ¶
func (m *UserSettings) Create() error
Create new entity in the database.
func (*UserSettings) HasID ¶
func (m *UserSettings) HasID() bool
HasID tests if the entity has a valid uid.
func (*UserSettings) Save ¶
func (m *UserSettings) Save() error
Save updates the record in the database or inserts a new record if it does not already exist.
func (UserSettings) TableName ¶
func (UserSettings) TableName() string
TableName returns the entity table name.
func (*UserSettings) Updates ¶
func (m *UserSettings) Updates(values interface{}) error
Updates multiple properties in the database.
type UserShare ¶
type UserShare struct {}
UserShare represents content shared with a user.
func FindUserShare ¶
FindUserShare fetches the matching record or returns null if it was not found.
func NewUserShare ¶
NewUserShare creates a new entity model.
func (*UserShare) Save ¶
Save updates the record in the database or inserts a new record if it does not already exist.
func (*UserShare) UpdateLink ¶
UpdateLink updates the share data using the Link provided.
type UserShareMap ¶
func (UserShareMap) Get ¶
func (m UserShareMap) Get(name string) UserShare
Get returns a fixture for use in tests.
func (UserShareMap) Pointer ¶
func (m UserShareMap) Pointer(name string) *UserShare
Pointer returns a fixture pointer for use in tests.
type UserShares ¶
type UserShares []UserShare
UserShares represents shared content.
func FindUserShares ¶
func FindUserShares(userUid string) UserShares
FindUserShares finds all shares to which the user has access.
func (UserShares) Contains ¶
func (m UserShares) Contains(uid string) bool
Contains checks the uid is shared.
Source Files ¶
- album.go
- album_cache.go
- album_fixtures.go
- album_user.go
- album_yaml.go
- auth_client.go
- auth_client_add.go
- auth_client_fixtures.go
- auth_session.go
- auth_session_cache.go
- auth_session_client.go
- auth_session_data.go
- auth_session_delete.go
- auth_session_fixtures.go
- auth_session_login.go
- auth_session_report.go
- auth_tokens.go
- auth_user.go
- auth_user_add.go
- auth_user_cli.go
- auth_user_default.go
- auth_user_details.go
- auth_user_fixtures.go
- auth_user_legacy.go
- auth_user_report.go
- auth_user_settings.go
- auth_user_share.go
- auth_user_share_fixtures.go
- camera.go
- camera_cache.go
- camera_fixtures.go
- camera_makes.go
- camera_models.go
- category.go
- category_fixtures.go
- cell.go
- cell_fixtures.go
- country.go
- country_cache.go
- country_fixtures.go
- db.go
- db_conn.go
- deprecated.go
- details.go
- details_fixtures.go
- duplicate.go
- entity.go
- entity_const.go
- entity_count.go
- entity_counts.go
- entity_fixtures.go
- entity_init.go
- entity_save.go
- entity_tables.go
- entity_time.go
- entity_update.go
- entity_values.go
- error.go
- face.go
- face_fixtures.go
- faces.go
- file.go
- file_fixtures.go
- file_json.go
- file_metadata.go
- file_share.go
- file_share_fixtures.go
- file_sync.go
- file_sync_fixtures.go
- fixtures.go
- folder.go
- folder_fixtures.go
- keyword.go
- keyword_fixtures.go
- label.go
- label_fixtures.go
- lens.go
- lens_cache.go
- lens_fixtures.go
- lens_models.go
- link.go
- link_fixtures.go
- marker.go
- marker_fixtures.go
- marker_json.go
- markers.go
- passcode.go
- passcode_fixtures.go
- passcode_json.go
- password.go
- password_fixtures.go
- photo.go
- photo_album.go
- photo_album_fixtures.go
- photo_datetime.go
- photo_estimate.go
- photo_fixtures.go
- photo_keyword.go
- photo_keyword_fixtures.go
- photo_label.go
- photo_location.go
- photo_merge.go
- photo_optimize.go
- photo_quality.go
- photo_title.go
- photo_user.go
- photo_yaml.go
- place.go
- place_fixtures.go
- reaction.go
- reaction_fixtures.go
- service.go
- service_fixtures.go
- src.go
- string.go
- string_keyvalue.go
- string_map.go
- subject.go
- subject_fixtures.go
- subject_names.go
- subject_person.go
- subjects.go