Compare commits
	
		
			No commits in common. "8545e098c12a2a4829aec3e9b45416fe175b4be8" and "c8b33572dae11ca054026000fefaa056af52a808" have entirely different histories.
		
	
	
		
			8545e098c1
			...
			c8b33572da
		
	
		
| 
						 | 
					@ -7,7 +7,10 @@ package api
 | 
				
			||||||
// Parameters:
 | 
					// Parameters:
 | 
				
			||||||
//   uuid: string PhotoUID as returned by the API
 | 
					//   uuid: string PhotoUID as returned by the API
 | 
				
			||||||
func (v1 *V1Client) GetPhoto(uuid string) (Photo, error) {
 | 
					func (v1 *V1Client) GetPhoto(uuid string) (Photo, error) {
 | 
				
			||||||
	photo := Photo{}
 | 
						photo := Photo{
 | 
				
			||||||
 | 
							UUID:     uuid,
 | 
				
			||||||
 | 
							PhotoUID: uuid,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	err := v1.GET("/api/v1/photos/%s", uuid).JSON(&photo)
 | 
						err := v1.GET("/api/v1/photos/%s", uuid).JSON(&photo)
 | 
				
			||||||
	return photo, err
 | 
						return photo, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										475
									
								
								api/v1/types.go
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
package api
 | 
					package api
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"database/sql"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,237 +9,335 @@ type Photos []Photo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Photo represents a photo, all its properties, and link to all its images and sidecar files.
 | 
					// Photo represents a photo, all its properties, and link to all its images and sidecar files.
 | 
				
			||||||
type Photo struct {
 | 
					type Photo struct {
 | 
				
			||||||
	PhotoID          int          `json:"ID,omitempty"`
 | 
						UUID             string       `gorm:"type:VARBINARY(42);index;" json:"DocumentID,omitempty" yaml:"DocumentID,omitempty"`
 | 
				
			||||||
	TakenAt          time.Time    `json:"TakenAt"`
 | 
						TakenAt          time.Time    `gorm:"type:datetime;index:idx_photos_taken_uid;" json:"TakenAt" yaml:"TakenAt"`
 | 
				
			||||||
	TakenAtLocal     time.Time    `json:"TakenAtLocal"`
 | 
						TakenAtLocal     time.Time    `gorm:"type:datetime;" yaml:"-"`
 | 
				
			||||||
	TakenSrc         string       `json:"TakenSrc"`
 | 
						TakenSrc         string       `gorm:"type:VARBINARY(8);" json:"TakenSrc" yaml:"TakenSrc,omitempty"`
 | 
				
			||||||
	PhotoUID         string       `json:"UID"`
 | 
						PhotoUID         string       `gorm:"type:VARBINARY(42);unique_index;index:idx_photos_taken_uid;" json:"UID" yaml:"UID"`
 | 
				
			||||||
	PhotoType        string       `json:"Type"`
 | 
						PhotoType        string       `gorm:"type:VARBINARY(8);default:'image';" json:"Type" yaml:"Type"`
 | 
				
			||||||
	TypeSrc          string       `json:"TypeSrc"`
 | 
						TypeSrc          string       `gorm:"type:VARBINARY(8);" json:"TypeSrc" yaml:"TypeSrc,omitempty"`
 | 
				
			||||||
	PhotoTitle       string       `json:"Title"`
 | 
						PhotoTitle       string       `gorm:"type:VARCHAR(255);" json:"Title" yaml:"Title"`
 | 
				
			||||||
	TitleSrc         string       `json:"TitleSrc"`
 | 
						TitleSrc         string       `gorm:"type:VARBINARY(8);" json:"TitleSrc" yaml:"TitleSrc,omitempty"`
 | 
				
			||||||
	PhotoDescription string       `json:"Description"`
 | 
						PhotoDescription string       `gorm:"type:TEXT;" json:"Description" yaml:"Description,omitempty"`
 | 
				
			||||||
	DescriptionSrc   string       `json:"DescriptionSrc"`
 | 
						DescriptionSrc   string       `gorm:"type:VARBINARY(8);" json:"DescriptionSrc" yaml:"DescriptionSrc,omitempty"`
 | 
				
			||||||
	PhotoPath        string       `json:"Path"`
 | 
						PhotoPath        string       `gorm:"type:VARBINARY(500);index:idx_photos_path_name;" json:"Path" yaml:"-"`
 | 
				
			||||||
	PhotoName        string       `json:"Name"`
 | 
						PhotoName        string       `gorm:"type:VARBINARY(255);index:idx_photos_path_name;" json:"Name" yaml:"-"`
 | 
				
			||||||
	OriginalName     string       `json:"OriginalName"`
 | 
						OriginalName     string       `gorm:"type:VARBINARY(755);" json:"OriginalName" yaml:"OriginalName,omitempty"`
 | 
				
			||||||
	PhotoStack       int8         `json:"Stack"`
 | 
						PhotoStack       int8         `json:"Stack" yaml:"Stack,omitempty"`
 | 
				
			||||||
	PhotoFavorite    bool         `json:"Favorite"`
 | 
						PhotoFavorite    bool         `json:"Favorite" yaml:"Favorite,omitempty"`
 | 
				
			||||||
	PhotoPrivate     bool         `json:"Private"`
 | 
						PhotoPrivate     bool         `json:"Private" yaml:"Private,omitempty"`
 | 
				
			||||||
	PhotoScan        bool         `json:"Scan"`
 | 
						PhotoScan        bool         `json:"Scan" yaml:"Scan,omitempty"`
 | 
				
			||||||
	PhotoPanorama    bool         `json:"Panorama"`
 | 
						PhotoPanorama    bool         `json:"Panorama" yaml:"Panorama,omitempty"`
 | 
				
			||||||
	TimeZone         string       `json:"TimeZone"`
 | 
						TimeZone         string       `gorm:"type:VARBINARY(64);" json:"TimeZone" yaml:"-"`
 | 
				
			||||||
	PlaceID          string       `json:"PlaceID"`
 | 
						PlaceID          string       `gorm:"type:VARBINARY(42);index;default:'zz'" json:"PlaceID" yaml:"-"`
 | 
				
			||||||
	PlaceSrc         string       `json:"PlaceSrc"`
 | 
						PlaceSrc         string       `gorm:"type:VARBINARY(8);" json:"PlaceSrc" yaml:"PlaceSrc,omitempty"`
 | 
				
			||||||
	CellID           string       `json:"CellID"`
 | 
						CellID           string       `gorm:"type:VARBINARY(42);index;default:'zz'" json:"CellID" yaml:"-"`
 | 
				
			||||||
	CellAccuracy     int          `json:"CellAccuracy"`
 | 
						CellAccuracy     int          `json:"CellAccuracy" yaml:"CellAccuracy,omitempty"`
 | 
				
			||||||
	PhotoAltitude    int          `json:"Altitude"`
 | 
						PhotoAltitude    int          `json:"Altitude" yaml:"Altitude,omitempty"`
 | 
				
			||||||
	PhotoLat         float32      `json:"Lat"`
 | 
						PhotoLat         float32      `gorm:"type:FLOAT;index;" json:"Lat" yaml:"Lat,omitempty"`
 | 
				
			||||||
	PhotoLng         float32      `json:"Lng"`
 | 
						PhotoLng         float32      `gorm:"type:FLOAT;index;" json:"Lng" yaml:"Lng,omitempty"`
 | 
				
			||||||
	PhotoCountry     string       `json:"Country"`
 | 
						PhotoCountry     string       `gorm:"type:VARBINARY(2);index:idx_photos_country_year_month;default:'zz'" json:"Country" yaml:"-"`
 | 
				
			||||||
	PhotoYear        int          `json:"Year"`
 | 
						PhotoYear        int          `gorm:"index:idx_photos_country_year_month;" json:"Year" yaml:"Year"`
 | 
				
			||||||
	PhotoMonth       int          `json:"Month"`
 | 
						PhotoMonth       int          `gorm:"index:idx_photos_country_year_month;" json:"Month" yaml:"Month"`
 | 
				
			||||||
	PhotoDay         int          `json:"Day"`
 | 
						PhotoDay         int          `json:"Day" yaml:"Day"`
 | 
				
			||||||
	PhotoIso         int          `json:"Iso"`
 | 
						PhotoIso         int          `json:"Iso" yaml:"ISO,omitempty"`
 | 
				
			||||||
	PhotoExposure    string       `json:"Exposure"`
 | 
						PhotoExposure    string       `gorm:"type:VARBINARY(64);" json:"Exposure" yaml:"Exposure,omitempty"`
 | 
				
			||||||
	PhotoFNumber     float32      `json:"FNumber"`
 | 
						PhotoFNumber     float32      `gorm:"type:FLOAT;" json:"FNumber" yaml:"FNumber,omitempty"`
 | 
				
			||||||
	PhotoFocalLength int          `json:"FocalLength"`
 | 
						PhotoFocalLength int          `json:"FocalLength" yaml:"FocalLength,omitempty"`
 | 
				
			||||||
	PhotoQuality     int          `json:"Quality"`
 | 
						PhotoQuality     int          `gorm:"type:SMALLINT" json:"Quality" yaml:"-"`
 | 
				
			||||||
	PhotoResolution  int          `json:"Resolution"`
 | 
						PhotoResolution  int          `gorm:"type:SMALLINT" json:"Resolution" yaml:"-"`
 | 
				
			||||||
	PhotoColor       uint8        `json:"Color"`
 | 
						PhotoColor       uint8        `json:"Color" yaml:"-"`
 | 
				
			||||||
	CameraID         uint         `json:"CameraID"`
 | 
						CameraID         uint         `gorm:"index:idx_photos_camera_lens;default:1" json:"CameraID" yaml:"-"`
 | 
				
			||||||
	CameraSerial     string       `json:"CameraSerial"`
 | 
						CameraSerial     string       `gorm:"type:VARBINARY(255);" json:"CameraSerial" yaml:"CameraSerial,omitempty"`
 | 
				
			||||||
	CameraSrc        string       `json:"CameraSrc"`
 | 
						CameraSrc        string       `gorm:"type:VARBINARY(8);" json:"CameraSrc" yaml:"-"`
 | 
				
			||||||
	LensID           uint         `json:"LensID"`
 | 
						LensID           uint         `gorm:"index:idx_photos_camera_lens;default:1" json:"LensID" yaml:"-"`
 | 
				
			||||||
	Details          *Details     `json:"Details"`
 | 
						Details          *Details     `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Details" yaml:"Details"`
 | 
				
			||||||
	Camera           *Camera      `json:"Camera"`
 | 
						Camera           *Camera      `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Camera" yaml:"-"`
 | 
				
			||||||
	Lens             *Lens        `json:"Lens"`
 | 
						Lens             *Lens        `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Lens" yaml:"-"`
 | 
				
			||||||
	Cell             *Cell        `json:"Cell"`
 | 
						Cell             *Cell        `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Cell" yaml:"-"`
 | 
				
			||||||
	Place            *Place       `json:"Place"`
 | 
						Place            *Place       `gorm:"association_autoupdate:false;association_autocreate:false;association_save_reference:false" json:"Place" yaml:"-"`
 | 
				
			||||||
	Files            []File       `json:"Files"`
 | 
						Keywords         []Keyword    `json:"-" yaml:"-"`
 | 
				
			||||||
	Labels           []PhotoLabel `json:"Labels"`
 | 
						Albums           []Album      `json:"-" yaml:"-"`
 | 
				
			||||||
	CreatedAt        time.Time    `json:"CreatedAt"`
 | 
						Files            []File       `yaml:"-"`
 | 
				
			||||||
	UpdatedAt        time.Time    `json:"UpdatedAt"`
 | 
						Labels           []PhotoLabel `yaml:"-"`
 | 
				
			||||||
	EditedAt         *time.Time   `json:"EditedAt"`
 | 
						CreatedAt        time.Time    `yaml:"CreatedAt,omitempty"`
 | 
				
			||||||
	CheckedAt        *time.Time   `json:"CheckedAt"`
 | 
						UpdatedAt        time.Time    `yaml:"UpdatedAt,omitempty"`
 | 
				
			||||||
	DeletedAt        *time.Time   `json:"DeletedAt"`
 | 
						EditedAt         *time.Time   `yaml:"EditedAt,omitempty"`
 | 
				
			||||||
 | 
						CheckedAt        *time.Time   `sql:"index" yaml:"-"`
 | 
				
			||||||
 | 
						DeletedAt        *time.Time   `sql:"index" yaml:"DeletedAt,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Details stores additional metadata fields for each photo to improve search performance.
 | 
					// Details stores additional metadata fields for each photo to improve search performance.
 | 
				
			||||||
type Details struct {
 | 
					type Details struct {
 | 
				
			||||||
	PhotoID      uint      `json:"PhotoID"`
 | 
						PhotoID      uint      `gorm:"primary_key;auto_increment:false" yaml:"-"`
 | 
				
			||||||
	Keywords     string    `json:"Keywords"`
 | 
						Keywords     string    `gorm:"type:TEXT;" json:"Keywords" yaml:"Keywords"`
 | 
				
			||||||
	KeywordsSrc  string    `json:"KeywordsSrc"`
 | 
						KeywordsSrc  string    `gorm:"type:VARBINARY(8);" json:"KeywordsSrc" yaml:"KeywordsSrc,omitempty"`
 | 
				
			||||||
	Notes        string    `json:"Notes"`
 | 
						Notes        string    `gorm:"type:TEXT;" json:"Notes" yaml:"Notes,omitempty"`
 | 
				
			||||||
	NotesSrc     string    `json:"NotesSrc"`
 | 
						NotesSrc     string    `gorm:"type:VARBINARY(8);" json:"NotesSrc" yaml:"NotesSrc,omitempty"`
 | 
				
			||||||
	Subject      string    `json:"Subject"`
 | 
						Subject      string    `gorm:"type:VARCHAR(255);" json:"Subject" yaml:"Subject,omitempty"`
 | 
				
			||||||
	SubjectSrc   string    `json:"SubjectSrc"`
 | 
						SubjectSrc   string    `gorm:"type:VARBINARY(8);" json:"SubjectSrc" yaml:"SubjectSrc,omitempty"`
 | 
				
			||||||
	Artist       string    `json:"Artist"`
 | 
						Artist       string    `gorm:"type:VARCHAR(255);" json:"Artist" yaml:"Artist,omitempty"`
 | 
				
			||||||
	ArtistSrc    string    `json:"ArtistSrc"`
 | 
						ArtistSrc    string    `gorm:"type:VARBINARY(8);" json:"ArtistSrc" yaml:"ArtistSrc,omitempty"`
 | 
				
			||||||
	Copyright    string    `json:"Copyright"`
 | 
						Copyright    string    `gorm:"type:VARCHAR(255);" json:"Copyright" yaml:"Copyright,omitempty"`
 | 
				
			||||||
	CopyrightSrc string    `json:"CopyrightSrc"`
 | 
						CopyrightSrc string    `gorm:"type:VARBINARY(8);" json:"CopyrightSrc" yaml:"CopyrightSrc,omitempty"`
 | 
				
			||||||
	License      string    `json:"License"`
 | 
						License      string    `gorm:"type:VARCHAR(255);" json:"License" yaml:"License,omitempty"`
 | 
				
			||||||
	LicenseSrc   string    `json:"LicenseSrc"`
 | 
						LicenseSrc   string    `gorm:"type:VARBINARY(8);" json:"LicenseSrc" yaml:"LicenseSrc,omitempty"`
 | 
				
			||||||
	Software     string    `json:"Software"`
 | 
						CreatedAt    time.Time `yaml:"-"`
 | 
				
			||||||
	SoftwareSrc  string    `json:"SoftwareSrc"`
 | 
						UpdatedAt    time.Time `yaml:"-"`
 | 
				
			||||||
	CreatedAt    time.Time `json:"CreatedAt"`
 | 
					 | 
				
			||||||
	UpdatedAt    time.Time `json:"UpdatedAt"`
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Camera model and make (as extracted from UpdateExif metadata)
 | 
					// Camera model and make (as extracted from UpdateExif metadata)
 | 
				
			||||||
type Camera struct {
 | 
					type Camera struct {
 | 
				
			||||||
	ID                uint   `json:"ID"`
 | 
						ID                uint       `gorm:"primary_key" json:"ID" yaml:"ID"`
 | 
				
			||||||
	CameraSlug        string `json:"Slug"`
 | 
						CameraSlug        string     `gorm:"type:VARBINARY(255);unique_index;" json:"Slug" yaml:"-"`
 | 
				
			||||||
	CameraName        string `json:"Name"`
 | 
						CameraName        string     `gorm:"type:VARCHAR(255);" json:"Name" yaml:"Name"`
 | 
				
			||||||
	CameraMake        string `json:"Make"`
 | 
						CameraMake        string     `gorm:"type:VARCHAR(255);" json:"Make" yaml:"Make,omitempty"`
 | 
				
			||||||
	CameraModel       string `json:"Model"`
 | 
						CameraModel       string     `gorm:"type:VARCHAR(255);" json:"Model" yaml:"Model,omitempty"`
 | 
				
			||||||
	CameraType        string `json:"Type,omitempty"`
 | 
						CameraType        string     `gorm:"type:VARCHAR(255);" json:"Type,omitempty" yaml:"Type,omitempty"`
 | 
				
			||||||
	CameraDescription string `json:"Description,omitempty"`
 | 
						CameraDescription string     `gorm:"type:TEXT;" json:"Description,omitempty" yaml:"Description,omitempty"`
 | 
				
			||||||
	CameraNotes       string `json:"Notes,omitempty"`
 | 
						CameraNotes       string     `gorm:"type:TEXT;" 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)
 | 
					// Lens represents camera lens (as extracted from UpdateExif metadata)
 | 
				
			||||||
type Lens struct {
 | 
					type Lens struct {
 | 
				
			||||||
	ID              uint   `json:"ID"`
 | 
						ID              uint       `gorm:"primary_key" json:"ID" yaml:"ID"`
 | 
				
			||||||
	LensSlug        string `json:"Slug"`
 | 
						LensSlug        string     `gorm:"type:VARBINARY(255);unique_index;" json:"Slug" yaml:"Slug,omitempty"`
 | 
				
			||||||
	LensName        string `json:"Name"`
 | 
						LensName        string     `gorm:"type:VARCHAR(255);" json:"Name" yaml:"Name"`
 | 
				
			||||||
	LensMake        string `json:"Make"`
 | 
						LensMake        string     `gorm:"type:VARCHAR(255);" json:"Make" yaml:"Make,omitempty"`
 | 
				
			||||||
	LensModel       string `json:"Model"`
 | 
						LensModel       string     `gorm:"type:VARCHAR(255);" json:"Model" yaml:"Model,omitempty"`
 | 
				
			||||||
	LensType        string `json:"Type"`
 | 
						LensType        string     `gorm:"type:VARCHAR(255);" json:"Type" yaml:"Type,omitempty"`
 | 
				
			||||||
	LensDescription string `json:"Description,omitempty"`
 | 
						LensDescription string     `gorm:"type:TEXT;" json:"Description,omitempty" yaml:"Description,omitempty"`
 | 
				
			||||||
	LensNotes       string `json:"Notes,omitempty"`
 | 
						LensNotes       string     `gorm:"type:TEXT;" json:"Notes,omitempty" yaml:"Notes,omitempty"`
 | 
				
			||||||
 | 
						CreatedAt       time.Time  `json:"-" yaml:"-"`
 | 
				
			||||||
 | 
						UpdatedAt       time.Time  `json:"-" yaml:"-"`
 | 
				
			||||||
 | 
						DeletedAt       *time.Time `sql:"index" json:"-" yaml:"-"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Cell represents a S2 cell with location data.
 | 
					// Cell represents a S2 cell with location data.
 | 
				
			||||||
type Cell struct {
 | 
					type Cell struct {
 | 
				
			||||||
	ID           string    `json:"ID"`
 | 
						ID           string    `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"ID" yaml:"ID"`
 | 
				
			||||||
	CellName     string    `json:"Name"`
 | 
						CellName     string    `gorm:"type:VARCHAR(255);" json:"Name" yaml:"Name,omitempty"`
 | 
				
			||||||
	CellStreet   string    `json:"Street"`
 | 
						CellCategory string    `gorm:"type:VARCHAR(64);" json:"Category" yaml:"Category,omitempty"`
 | 
				
			||||||
	CellPostcode string    `json:"Postcode"`
 | 
						PlaceID      string    `gorm:"type:VARBINARY(42);default:'zz'" json:"-" yaml:"PlaceID"`
 | 
				
			||||||
	CellCategory string    `json:"Category"`
 | 
						Place        *Place    `gorm:"PRELOAD:true" json:"Place" yaml:"-"`
 | 
				
			||||||
	Place        *Place    `json:"Place"`
 | 
						CreatedAt    time.Time `json:"CreatedAt" yaml:"-"`
 | 
				
			||||||
	CreatedAt    time.Time `json:"CreatedAt"`
 | 
						UpdatedAt    time.Time `json:"UpdatedAt" yaml:"-"`
 | 
				
			||||||
	UpdatedAt    time.Time `json:"UpdatedAt"`
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Place used to associate photos to places
 | 
					// Place used to associate photos to places
 | 
				
			||||||
type Place struct {
 | 
					type Place struct {
 | 
				
			||||||
	ID            string    `json:"PlaceID"`
 | 
						ID            string    `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;" json:"PlaceID" yaml:"PlaceID"`
 | 
				
			||||||
	PlaceLabel    string    `json:"Label"`
 | 
						PlaceLabel    string    `gorm:"type:VARBINARY(755);unique_index;" json:"Label" yaml:"Label"`
 | 
				
			||||||
	PlaceCity     string    `json:"City"`
 | 
						PlaceCity     string    `gorm:"type:VARCHAR(255);" json:"City" yaml:"City,omitempty"`
 | 
				
			||||||
	PlaceState    string    `json:"State"`
 | 
						PlaceState    string    `gorm:"type:VARCHAR(255);" json:"State" yaml:"State,omitempty"`
 | 
				
			||||||
	PlaceCountry  string    `json:"Country"`
 | 
						PlaceCountry  string    `gorm:"type:VARBINARY(2);" json:"Country" yaml:"Country,omitempty"`
 | 
				
			||||||
	PlaceKeywords string    `json:"Keywords"`
 | 
						PlaceKeywords string    `gorm:"type:VARCHAR(255);" json:"Keywords" yaml:"Keywords,omitempty"`
 | 
				
			||||||
	PlaceFavorite bool      `json:"Favorite"`
 | 
						PlaceFavorite bool      `json:"Favorite" yaml:"Favorite,omitempty"`
 | 
				
			||||||
	PhotoCount    int       `json:"PhotoCount"`
 | 
						PhotoCount    int       `gorm:"default:1" json:"PhotoCount" yaml:"-"`
 | 
				
			||||||
	CreatedAt     time.Time `json:"CreatedAt"`
 | 
						CreatedAt     time.Time `json:"CreatedAt" yaml:"-"`
 | 
				
			||||||
	UpdatedAt     time.Time `json:"UpdatedAt"`
 | 
						UpdatedAt     time.Time `json:"UpdatedAt" yaml:"-"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Keyword used for full text search
 | 
				
			||||||
 | 
					type Keyword struct {
 | 
				
			||||||
 | 
						ID      uint   `gorm:"primary_key"`
 | 
				
			||||||
 | 
						Keyword string `gorm:"type:VARCHAR(64);index;"`
 | 
				
			||||||
 | 
						Skip    bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Album represents a photo album
 | 
					// Album represents a photo album
 | 
				
			||||||
type Album struct {
 | 
					type Album struct {
 | 
				
			||||||
	ID               uint       `json:"ID"`
 | 
						ID               uint        `gorm:"primary_key" json:"ID" yaml:"-"`
 | 
				
			||||||
	AlbumUID         string     `json:"UID"`
 | 
						AlbumUID         string      `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"`
 | 
				
			||||||
	AlbumSlug        string     `json:"Slug"`
 | 
						CoverUID         string      `gorm:"type:VARBINARY(42);" json:"CoverUID" yaml:"CoverUID,omitempty"`
 | 
				
			||||||
	AlbumType        string     `json:"Type"`
 | 
						FolderUID        string      `gorm:"type:VARBINARY(42);index;" json:"FolderUID" yaml:"FolderUID,omitempty"`
 | 
				
			||||||
	AlbumTitle       string     `json:"Title"`
 | 
						AlbumSlug        string      `gorm:"type:VARBINARY(255);index;" json:"Slug" yaml:"Slug"`
 | 
				
			||||||
	AlbumLocation    string     `json:"Location"`
 | 
						AlbumPath        string      `gorm:"type:VARBINARY(500);index;" json:"Path" yaml:"-"`
 | 
				
			||||||
	AlbumCategory    string     `json:"Category"`
 | 
						AlbumType        string      `gorm:"type:VARBINARY(8);default:'album';" json:"Type" yaml:"Type,omitempty"`
 | 
				
			||||||
	AlbumCaption     string     `json:"Caption"`
 | 
						AlbumTitle       string      `gorm:"type:VARCHAR(255);" json:"Title" yaml:"Title"`
 | 
				
			||||||
	AlbumDescription string     `json:"Description"`
 | 
						AlbumLocation    string      `gorm:"type:VARCHAR(255);" json:"Location" yaml:"Location,omitempty"`
 | 
				
			||||||
	AlbumNotes       string     `json:"Notes"`
 | 
						AlbumCategory    string      `gorm:"type:VARCHAR(255);index;" json:"Category" yaml:"Category,omitempty"`
 | 
				
			||||||
	AlbumFilter      string     `json:"Filter"`
 | 
						AlbumCaption     string      `gorm:"type:TEXT;" json:"Caption" yaml:"Caption,omitempty"`
 | 
				
			||||||
	AlbumOrder       string     `json:"Order"`
 | 
						AlbumDescription string      `gorm:"type:TEXT;" json:"Description" yaml:"Description,omitempty"`
 | 
				
			||||||
	AlbumTemplate    string     `json:"Template"`
 | 
						AlbumNotes       string      `gorm:"type:TEXT;" json:"Notes" yaml:"Notes,omitempty"`
 | 
				
			||||||
	AlbumCountry     string     `json:"Country"`
 | 
						AlbumFilter      string      `gorm:"type:VARBINARY(1024);" json:"Filter" yaml:"Filter,omitempty"`
 | 
				
			||||||
	AlbumYear        int        `json:"Year"`
 | 
						AlbumOrder       string      `gorm:"type:VARBINARY(32);" json:"Order" yaml:"Order,omitempty"`
 | 
				
			||||||
	AlbumMonth       int        `json:"Month"`
 | 
						AlbumTemplate    string      `gorm:"type:VARBINARY(255);" json:"Template" yaml:"Template,omitempty"`
 | 
				
			||||||
	AlbumDay         int        `json:"Day"`
 | 
						AlbumCountry     string      `gorm:"type:VARBINARY(2);index:idx_albums_country_year_month;default:'zz'" json:"Country" yaml:"Country,omitempty"`
 | 
				
			||||||
	AlbumFavorite    bool       `json:"Favorite"`
 | 
						AlbumYear        int         `gorm:"index:idx_albums_country_year_month;" json:"Year" yaml:"Year,omitempty"`
 | 
				
			||||||
	AlbumPrivate     bool       `json:"Private"`
 | 
						AlbumMonth       int         `gorm:"index:idx_albums_country_year_month;" json:"Month" yaml:"Month,omitempty"`
 | 
				
			||||||
	CreatedAt        time.Time  `json:"CreatedAt"`
 | 
						AlbumDay         int         `json:"Day" yaml:"Day,omitempty"`
 | 
				
			||||||
	UpdatedAt        time.Time  `json:"UpdatedAt"`
 | 
						AlbumFavorite    bool        `json:"Favorite" yaml:"Favorite,omitempty"`
 | 
				
			||||||
	DeletedAt        *time.Time `json:"DeletedAt"`
 | 
						AlbumPrivate     bool        `json:"Private" yaml:"Private,omitempty"`
 | 
				
			||||||
 | 
						CreatedAt        time.Time   `json:"CreatedAt" yaml:"CreatedAt,omitempty"`
 | 
				
			||||||
 | 
						UpdatedAt        time.Time   `json:"UpdatedAt" yaml:"UpdatedAt,omitempty"`
 | 
				
			||||||
 | 
						DeletedAt        *time.Time  `sql:"index" json:"DeletedAt" yaml:"DeletedAt,omitempty"`
 | 
				
			||||||
 | 
						Photos           PhotoAlbums `gorm:"foreignkey:AlbumUID;association_foreignkey:AlbumUID" json:"-" yaml:"Photos,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type PhotoAlbums []PhotoAlbum
 | 
					type PhotoAlbums []PhotoAlbum
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// PhotoAlbum represents the many_to_many relation between Photo and Album
 | 
					// PhotoAlbum represents the many_to_many relation between Photo and Album
 | 
				
			||||||
type PhotoAlbum struct {
 | 
					type PhotoAlbum struct {
 | 
				
			||||||
	PhotoUID  string    `json:"PhotoUID"`
 | 
						PhotoUID  string    `gorm:"type:VARBINARY(42);primary_key;auto_increment:false" json:"PhotoUID" yaml:"UID"`
 | 
				
			||||||
	AlbumUID  string    `json:"AlbumUID"`
 | 
						AlbumUID  string    `gorm:"type:VARBINARY(42);primary_key;auto_increment:false;index" json:"AlbumUID" yaml:"-"`
 | 
				
			||||||
	Order     int       `json:"Order"`
 | 
						Order     int       `json:"Order" yaml:"Order,omitempty"`
 | 
				
			||||||
	Hidden    bool      `json:"Hidden"`
 | 
						Hidden    bool      `json:"Hidden" yaml:"Hidden,omitempty"`
 | 
				
			||||||
	Missing   bool      `json:"Missing"`
 | 
						Missing   bool      `json:"Missing" yaml:"Missing,omitempty"`
 | 
				
			||||||
	CreatedAt time.Time `json:"CreatedAt"`
 | 
						CreatedAt time.Time `json:"CreatedAt" yaml:"CreatedAt,omitempty"`
 | 
				
			||||||
	UpdatedAt time.Time `json:"UpdatedAt"`
 | 
						UpdatedAt time.Time `json:"UpdatedAt" yaml:"-"`
 | 
				
			||||||
	Photo     *Photo
 | 
						Photo     *Photo    `gorm:"PRELOAD:false" yaml:"-"`
 | 
				
			||||||
	Album     *Album
 | 
						Album     *Album    `gorm:"PRELOAD:true" yaml:"-"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Files []File
 | 
					type Files []File
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// File represents an image or sidecar file that belongs to a photo.
 | 
					// File represents an image or sidecar file that belongs to a photo.
 | 
				
			||||||
type File struct {
 | 
					type File struct {
 | 
				
			||||||
	PhotoUID        string        `json:"PhotoUID"`
 | 
						ID              uint          `gorm:"primary_key" json:"-" yaml:"-"`
 | 
				
			||||||
	FileUID         string        `json:"UID"`
 | 
						Photo           *Photo        `json:"-" yaml:"-"`
 | 
				
			||||||
	FileName        string        `json:"Name"`
 | 
						PhotoID         uint          `gorm:"index;" json:"-" yaml:"-"`
 | 
				
			||||||
	FileRoot        string        `json:"Root"`
 | 
						PhotoUID        string        `gorm:"type:VARBINARY(42);index;" json:"PhotoUID" yaml:"PhotoUID"`
 | 
				
			||||||
	OriginalName    string        `json:"OriginalName"`
 | 
						InstanceID      string        `gorm:"type:VARBINARY(42);index;" json:"InstanceID,omitempty" yaml:"InstanceID,omitempty"`
 | 
				
			||||||
	FileHash        string        `json:"Hash"`
 | 
						FileUID         string        `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"`
 | 
				
			||||||
	FileSize        int64         `json:"Size"`
 | 
						FileName        string        `gorm:"type:VARBINARY(755);unique_index:idx_files_name_root;" json:"Name" yaml:"Name"`
 | 
				
			||||||
	FileCodec       string        `json:"Codec"`
 | 
						FileRoot        string        `gorm:"type:VARBINARY(16);default:'/';unique_index:idx_files_name_root;" json:"Root" yaml:"Root,omitempty"`
 | 
				
			||||||
	FileType        string        `json:"Type"`
 | 
						OriginalName    string        `gorm:"type:VARBINARY(755);" json:"OriginalName" yaml:"OriginalName,omitempty"`
 | 
				
			||||||
	FileMime        string        `json:"Mime"`
 | 
						FileHash        string        `gorm:"type:VARBINARY(128);index" json:"Hash" yaml:"Hash,omitempty"`
 | 
				
			||||||
	FilePrimary     bool          `json:"Primary"`
 | 
						FileSize        int64         `json:"Size" yaml:"Size,omitempty"`
 | 
				
			||||||
	FileSidecar     bool          `json:"Sidecar"`
 | 
						FileCodec       string        `gorm:"type:VARBINARY(32)" json:"Codec" yaml:"Codec,omitempty"`
 | 
				
			||||||
	FileMissing     bool          `json:"Missing"`
 | 
						FileType        string        `gorm:"type:VARBINARY(32)" json:"Type" yaml:"Type,omitempty"`
 | 
				
			||||||
	FilePortrait    bool          `json:"Portrait"`
 | 
						FileMime        string        `gorm:"type:VARBINARY(64)" json:"Mime" yaml:"Mime,omitempty"`
 | 
				
			||||||
	FileVideo       bool          `json:"Video"`
 | 
						FilePrimary     bool          `json:"Primary" yaml:"Primary,omitempty"`
 | 
				
			||||||
	FileDuration    time.Duration `json:"Duration"`
 | 
						FileSidecar     bool          `json:"Sidecar" yaml:"Sidecar,omitempty"`
 | 
				
			||||||
	FileWidth       int           `json:"Width"`
 | 
						FileMissing     bool          `json:"Missing" yaml:"Missing,omitempty"`
 | 
				
			||||||
	FileHeight      int           `json:"Height"`
 | 
						FilePortrait    bool          `json:"Portrait" yaml:"Portrait,omitempty"`
 | 
				
			||||||
	FileOrientation int           `json:"Orientation"`
 | 
						FileVideo       bool          `json:"Video" yaml:"Video,omitempty"`
 | 
				
			||||||
	FileProjection  string        `json:"Projection,omitempty"`
 | 
						FileDuration    time.Duration `json:"Duration" yaml:"Duration,omitempty"`
 | 
				
			||||||
	FileAspectRatio float32       `json:"AspectRatio"`
 | 
						FileWidth       int           `json:"Width" yaml:"Width,omitempty"`
 | 
				
			||||||
	FileMainColor   string        `json:"MainColor"`
 | 
						FileHeight      int           `json:"Height" yaml:"Height,omitempty"`
 | 
				
			||||||
	FileColors      string        `json:"Colors"`
 | 
						FileOrientation int           `json:"Orientation" yaml:"Orientation,omitempty"`
 | 
				
			||||||
	FileLuminance   string        `json:"Luminance"`
 | 
						FileProjection  string        `gorm:"type:VARBINARY(16);" json:"Projection,omitempty" yaml:"Projection,omitempty"`
 | 
				
			||||||
	FileDiff        uint32        `json:"Diff"`
 | 
						FileAspectRatio float32       `gorm:"type:FLOAT;" json:"AspectRatio" yaml:"AspectRatio,omitempty"`
 | 
				
			||||||
	FileChroma      uint8         `json:"Chroma"`
 | 
						FileMainColor   string        `gorm:"type:VARBINARY(16);index;" json:"MainColor" yaml:"MainColor,omitempty"`
 | 
				
			||||||
	FileError       string        `json:"Error"`
 | 
						FileColors      string        `gorm:"type:VARBINARY(9);" json:"Colors" yaml:"Colors,omitempty"`
 | 
				
			||||||
	ModTime         int64         `json:"ModTime"`
 | 
						FileLuminance   string        `gorm:"type:VARBINARY(9);" json:"Luminance" yaml:"Luminance,omitempty"`
 | 
				
			||||||
	CreatedAt       time.Time     `json:"CreatedAt"`
 | 
						FileDiff        uint32        `json:"Diff" yaml:"Diff,omitempty"`
 | 
				
			||||||
	CreatedIn       int64         `json:"CreatedIn"`
 | 
						FileChroma      uint8         `json:"Chroma" yaml:"Chroma,omitempty"`
 | 
				
			||||||
	UpdatedAt       time.Time     `json:"UpdatedAt"`
 | 
						FileError       string        `gorm:"type:VARBINARY(512)" json:"Error" yaml:"Error,omitempty"`
 | 
				
			||||||
	UpdatedIn       int64         `json:"UpdatedIn"`
 | 
						ModTime         int64         `json:"ModTime" yaml:"-"`
 | 
				
			||||||
	DeletedAt       *time.Time    `json:"DeletedAt,omitempty"`
 | 
						CreatedAt       time.Time     `json:"CreatedAt" yaml:"-"`
 | 
				
			||||||
 | 
						CreatedIn       int64         `json:"CreatedIn" yaml:"-"`
 | 
				
			||||||
 | 
						UpdatedAt       time.Time     `json:"UpdatedAt" yaml:"-"`
 | 
				
			||||||
 | 
						UpdatedIn       int64         `json:"UpdatedIn" yaml:"-"`
 | 
				
			||||||
 | 
						DeletedAt       *time.Time    `sql:"index" json:"DeletedAt,omitempty" yaml:"-"`
 | 
				
			||||||
 | 
						Share           []FileShare   `json:"-" yaml:"-"`
 | 
				
			||||||
 | 
						Sync            []FileSync    `json:"-" yaml:"-"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FileSync represents a one-to-many relation between File and Account for syncing with remote services.
 | 
				
			||||||
 | 
					type FileSync struct {
 | 
				
			||||||
 | 
						RemoteName string `gorm:"primary_key;auto_increment:false;type:VARBINARY(255)"`
 | 
				
			||||||
 | 
						AccountID  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    *Account
 | 
				
			||||||
 | 
						CreatedAt  time.Time
 | 
				
			||||||
 | 
						UpdatedAt  time.Time
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FileShare represents a one-to-many relation between File and Account for pushing files to remote services.
 | 
				
			||||||
 | 
					type FileShare struct {
 | 
				
			||||||
 | 
						FileID     uint   `gorm:"primary_key;auto_increment:false"`
 | 
				
			||||||
 | 
						AccountID  uint   `gorm:"primary_key;auto_increment:false"`
 | 
				
			||||||
 | 
						RemoteName string `gorm:"primary_key;auto_increment:false;type:VARBINARY(255)"`
 | 
				
			||||||
 | 
						Status     string `gorm:"type:VARBINARY(16);"`
 | 
				
			||||||
 | 
						Error      string `gorm:"type:VARBINARY(512);"`
 | 
				
			||||||
 | 
						Errors     int
 | 
				
			||||||
 | 
						File       *File
 | 
				
			||||||
 | 
						Account    *Account
 | 
				
			||||||
 | 
						CreatedAt  time.Time
 | 
				
			||||||
 | 
						UpdatedAt  time.Time
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// PhotoLabel represents the many-to-many relation between Photo and label.
 | 
					// PhotoLabel represents the many-to-many relation between Photo and label.
 | 
				
			||||||
// Labels are weighted by uncertainty (100 - confidence)
 | 
					// Labels are weighted by uncertainty (100 - confidence)
 | 
				
			||||||
type PhotoLabel struct {
 | 
					type PhotoLabel struct {
 | 
				
			||||||
	PhotoID     uint   `json:"PhotoID"`
 | 
						PhotoID     uint   `gorm:"primary_key;auto_increment:false"`
 | 
				
			||||||
	LabelID     uint   `json:"LabelID"`
 | 
						LabelID     uint   `gorm:"primary_key;auto_increment:false;index"`
 | 
				
			||||||
	LabelSrc    string `json:"LabelSrc""`
 | 
						LabelSrc    string `gorm:"type:VARBINARY(8);"`
 | 
				
			||||||
	Uncertainty int    `json:"Uncertainty"`
 | 
						Uncertainty int    `gorm:"type:SMALLINT"`
 | 
				
			||||||
	Photo       *Photo `json:"Photo"`
 | 
						Photo       *Photo `gorm:"PRELOAD:false"`
 | 
				
			||||||
	Label       *Label `json:"Label"`
 | 
						Label       *Label `gorm:"PRELOAD:true"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Label is used for photo, album and location categorization
 | 
					// Label is used for photo, album and location categorization
 | 
				
			||||||
type Label struct {
 | 
					type Label struct {
 | 
				
			||||||
	ID               uint      `json:"ID"`
 | 
						ID               uint       `gorm:"primary_key" json:"ID" yaml:"-"`
 | 
				
			||||||
	LabelUID         string    `json:"UID"`
 | 
						LabelUID         string     `gorm:"type:VARBINARY(42);unique_index;" json:"UID" yaml:"UID"`
 | 
				
			||||||
	LabelSlug        string    `json:"Slug"`
 | 
						LabelSlug        string     `gorm:"type:VARBINARY(255);unique_index;" json:"Slug" yaml:"-"`
 | 
				
			||||||
	CustomSlug       string    `json:"CustomSlug"`
 | 
						CustomSlug       string     `gorm:"type:VARBINARY(255);index;" json:"CustomSlug" yaml:"-"`
 | 
				
			||||||
	LabelName        string    `json:"Name"`
 | 
						LabelName        string     `gorm:"type:VARCHAR(255);" json:"Name" yaml:"Name"`
 | 
				
			||||||
	LabelPriority    int       `json:"Priority"`
 | 
						LabelPriority    int        `json:"Priority" yaml:"Priority,omitempty"`
 | 
				
			||||||
	LabelFavorite    bool      `json:"Favorite"`
 | 
						LabelFavorite    bool       `json:"Favorite" yaml:"Favorite,omitempty"`
 | 
				
			||||||
	LabelDescription string    `json:"Description"`
 | 
						LabelDescription string     `gorm:"type:TEXT;" json:"Description" yaml:"Description,omitempty"`
 | 
				
			||||||
	LabelNotes       string    `json:"Notes"`
 | 
						LabelNotes       string     `gorm:"type:TEXT;" json:"Notes" yaml:"Notes,omitempty"`
 | 
				
			||||||
	PhotoCount       int       `json:"PhotoCount"`
 | 
						LabelCategories  []*Label   `gorm:"many2many:categories;association_jointable_foreignkey:category_id" json:"-" yaml:"-"`
 | 
				
			||||||
	LabelThumb       string    `json:"Thumb"`
 | 
						PhotoCount       int        `gorm:"default:1" json:"PhotoCount" yaml:"-"`
 | 
				
			||||||
	CreatedAt        time.Time `json:"CreatedAt"`
 | 
						CreatedAt        time.Time  `json:"CreatedAt" yaml:"-"`
 | 
				
			||||||
	UpdatedAt        time.Time `json:"UpdatedAt"`
 | 
						UpdatedAt        time.Time  `json:"UpdatedAt" yaml:"-"`
 | 
				
			||||||
 | 
						DeletedAt        *time.Time `sql:"index" json:"DeletedAt,omitempty" yaml:"-"`
 | 
				
			||||||
 | 
						New              bool       `gorm:"-" json:"-" yaml:"-"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FileInfos represents meta data about a file
 | 
				
			||||||
 | 
					type FileInfos struct {
 | 
				
			||||||
 | 
						FileWidth       int
 | 
				
			||||||
 | 
						FileHeight      int
 | 
				
			||||||
 | 
						FileOrientation int
 | 
				
			||||||
 | 
						FileAspectRatio float32
 | 
				
			||||||
 | 
						FileMainColor   string
 | 
				
			||||||
 | 
						FileColors      string
 | 
				
			||||||
 | 
						FileLuminance   string
 | 
				
			||||||
 | 
						FileDiff        uint32
 | 
				
			||||||
 | 
						FileChroma      uint8
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Account represents a remote service account for uploading, downloading or syncing media files.
 | 
				
			||||||
 | 
					type Account struct {
 | 
				
			||||||
 | 
						ID            uint   `gorm:"primary_key"`
 | 
				
			||||||
 | 
						AccName       string `gorm:"type:VARCHAR(255);"`
 | 
				
			||||||
 | 
						AccOwner      string `gorm:"type:VARCHAR(255);"`
 | 
				
			||||||
 | 
						AccURL        string `gorm:"type:VARBINARY(512);"`
 | 
				
			||||||
 | 
						AccType       string `gorm:"type:VARBINARY(255);"`
 | 
				
			||||||
 | 
						AccKey        string `gorm:"type:VARBINARY(255);"`
 | 
				
			||||||
 | 
						AccUser       string `gorm:"type:VARBINARY(255);"`
 | 
				
			||||||
 | 
						AccPass       string `gorm:"type:VARBINARY(255);"`
 | 
				
			||||||
 | 
						AccError      string `gorm:"type:VARBINARY(512);"`
 | 
				
			||||||
 | 
						AccErrors     int
 | 
				
			||||||
 | 
						AccShare      bool
 | 
				
			||||||
 | 
						AccSync       bool
 | 
				
			||||||
 | 
						RetryLimit    int
 | 
				
			||||||
 | 
						SharePath     string `gorm:"type:VARBINARY(500);"`
 | 
				
			||||||
 | 
						ShareSize     string `gorm:"type:VARBINARY(16);"`
 | 
				
			||||||
 | 
						ShareExpires  int
 | 
				
			||||||
 | 
						SyncPath      string `gorm:"type:VARBINARY(500);"`
 | 
				
			||||||
 | 
						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"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ import (
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "git.zio.sh/astra/photoprism-client-go/api/v1"
 | 
						v1 "github.com/astravexton/photoprism-client-go/api/v1"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								examples/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					ignore_*
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,8 @@ Here are good examples and working code snippets to start from.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A lot of these files are used for development and are subject to change.
 | 
					A lot of these files are used for development and are subject to change.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For more complete sample code, see the integration testing suite in `/test`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Running the examples
 | 
					### Running the examples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Run the examples. Make sure to pass both the file you wish to run, as well as `common.go` to include the convenience functions.
 | 
					Run the examples. Make sure to pass both the file you wish to run, as well as `common.go` to include the convenience functions.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	photoprism "git.zio.sh/astra/photoprism-client-go"
 | 
					 | 
				
			||||||
	"git.zio.sh/astra/photoprism-client-go/api/v1"
 | 
					 | 
				
			||||||
	"github.com/astravexton/logger"
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
						photoprism "github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
 | 
						"github.com/astravexton/photoprism-client-go/api/v1"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@ import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	photoprism "git.zio.sh/astra/photoprism-client-go"
 | 
						photoprism "github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/astravexton/logger"
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,8 @@ package main
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	photoprism "git.zio.sh/astra/photoprism-client-go"
 | 
					 | 
				
			||||||
	"github.com/astravexton/logger"
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
						photoprism "github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	photoprism "git.zio.sh/astra/photoprism-client-go"
 | 
					 | 
				
			||||||
	"github.com/astravexton/logger"
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
						photoprism "github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,8 +5,8 @@ import (
 | 
				
			||||||
	"io/ioutil"
 | 
						"io/ioutil"
 | 
				
			||||||
	"path"
 | 
						"path"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	photoprism "git.zio.sh/astra/photoprism-client-go"
 | 
					 | 
				
			||||||
	"github.com/astravexton/logger"
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
						photoprism "github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,5 +1,8 @@
 | 
				
			||||||
module git.zio.sh/astra/photoprism-client-go
 | 
					module github.com/astravexton/photoprism-client-go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
go 1.18
 | 
					go 1.15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require github.com/astravexton/logger v0.2.2-0.20211216142523-c1e08a465709 // indirect
 | 
					require (
 | 
				
			||||||
 | 
						github.com/astravexton/logger v0.2.1
 | 
				
			||||||
 | 
						github.com/kris-nova/logger v0.2.1
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,8 +1,4 @@
 | 
				
			||||||
github.com/astravexton/logger v0.2.2-0.20211216142523-c1e08a465709 h1:S+dBCax7wdg3ikWx5t6cClPKQIerrmD404qAzWhO2V4=
 | 
					github.com/astravexton/logger v0.2.1 h1:nYxhV6oCHIJzUzaPhawbAc51EEvJowIViVsB5EbdeJQ=
 | 
				
			||||||
github.com/astravexton/logger v0.2.2-0.20211216142523-c1e08a465709/go.mod h1:6BlG5E0U3CImXLmDtGpEwdoc8PHiiDv0kbvJBCbfiMY=
 | 
					github.com/astravexton/logger v0.2.1/go.mod h1:6uxVhLlWlvZn48W8F52dsMXt4yztlrInpRhdWiJ9RXc=
 | 
				
			||||||
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
 | 
					github.com/kris-nova/logger v0.2.1 h1:hbZusgXXXTSd0rNAMBBe/8lhjxXkqWs0+nzjwewCI+E=
 | 
				
			||||||
github.com/kris-nova/lolgopher v0.0.0-20210112022122-73f0047e8b65/go.mod h1:V0HF/ZBlN86HqewcDC/cVxMmYDiRukWjSrgKLUAn9Js=
 | 
					github.com/kris-nova/logger v0.2.1/go.mod h1:++9BgZujZd4v0ZTZCb5iPsaomXdZWyxotIAh1IiDm44=
 | 
				
			||||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 | 
					 | 
				
			||||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								internal/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					# Internal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This directory is used to store backend code while developing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This directory should NEVER contain SDK code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								sample-app/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					# Sample App
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is bad code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					We shell exec the start/stop/create/destroy docker commands (poorly)
 | 
				
			||||||
 | 
					and this is how the unit testing suite attempts to start/stop/create/destroy
 | 
				
			||||||
 | 
					the local persistent store.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Running The Sample App
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash 
 | 
				
			||||||
 | 
					./pcreate  # Will create the sample app running locally
 | 
				
			||||||
 | 
					./pdestroy # Will destroy the sample app, but the data will persist regardles of running this command
 | 
				
			||||||
 | 
					./pstop    # Will stop the photoprism app from running/serving
 | 
				
			||||||
 | 
					./plogs    # Will tail the photoprism logs
 | 
				
			||||||
 | 
					./pstart   # Will start an already created, and then stopped Photoprism application
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										91
									
								
								sample-app/app.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,91 @@
 | 
				
			||||||
 | 
					package sampleapp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/astravexton/photoprism-client-go"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type SampleApplication struct {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func New() *SampleApplication {
 | 
				
			||||||
 | 
						app := &SampleApplication{}
 | 
				
			||||||
 | 
						return app
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// These are the bash scripts that can be used
 | 
				
			||||||
 | 
					// to start/stop the Photoprism test application
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						CreateCommand  = `pcreate`
 | 
				
			||||||
 | 
						DestroyCommand = `pdestroy`
 | 
				
			||||||
 | 
						LogsCommand    = `plogs`
 | 
				
			||||||
 | 
						StartCommand   = `pstart`
 | 
				
			||||||
 | 
						StopCommand    = `pstop"`
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) Start() error {
 | 
				
			||||||
 | 
						logger.Info("Starting Application...")
 | 
				
			||||||
 | 
						script, err := NewScriptFromPath(filepath.Join(PrintWorkingDirectory(), StartCommand))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script.Interpret()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) Stop() error {
 | 
				
			||||||
 | 
						logger.Info("Stopping Application...")
 | 
				
			||||||
 | 
						script, err := NewScriptFromPath(filepath.Join(PrintWorkingDirectory(), StopCommand))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script.Interpret()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) Create() error {
 | 
				
			||||||
 | 
						logger.Info("Create Application...")
 | 
				
			||||||
 | 
						script, err := NewScriptFromPath(filepath.Join(PrintWorkingDirectory(), CreateCommand))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script.Interpret()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) Destroy() error {
 | 
				
			||||||
 | 
						logger.Info("Destroying Application...")
 | 
				
			||||||
 | 
						script, err := NewScriptFromPath(filepath.Join(PrintWorkingDirectory(), DestroyCommand))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script.Interpret()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) Logs() error {
 | 
				
			||||||
 | 
						logger.Info("Logging Application...")
 | 
				
			||||||
 | 
						script, err := NewScriptFromPath(filepath.Join(PrintWorkingDirectory(), LogsCommand))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script.Interpret()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *SampleApplication) GetAuth() photoprism.ClientAuthenticator {
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func PrintWorkingDirectory() string {
 | 
				
			||||||
 | 
						_, filename, _, ok := runtime.Caller(1)
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							logger.Info("Unable to PWD")
 | 
				
			||||||
 | 
							return ""
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						dir, err := filepath.Abs(filepath.Dir(filename))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							logger.Info("Unable to PWD: %v", err)
 | 
				
			||||||
 | 
							return ""
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return dir
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										169
									
								
								sample-app/exec.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,169 @@
 | 
				
			||||||
 | 
					package sampleapp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"bytes"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"io/ioutil"
 | 
				
			||||||
 | 
						"os/exec"
 | 
				
			||||||
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/astravexton/logger"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Script is a set of commands delimited by newlines
 | 
				
			||||||
 | 
					// Comments # and // are ignored.
 | 
				
			||||||
 | 
					type Script struct {
 | 
				
			||||||
 | 
						commands []string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// NewScriptFromPath is used to build an executable script from a path of disk.
 | 
				
			||||||
 | 
					func NewScriptFromPath(path string) (*Script, error) {
 | 
				
			||||||
 | 
						path, err := filepath.Abs(path)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("unable to calculate fully qualified path for path: %s: %v", path, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bytes, err := ioutil.ReadFile(path)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("unable to read from path %s: %v", path, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						content := string(bytes)
 | 
				
			||||||
 | 
						return NewScriptFromString(content), nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const (
 | 
				
			||||||
 | 
						// IgnoreSpacesBash is the amount of (spaces - 1) that we see in common \\n delimited commands
 | 
				
			||||||
 | 
						IgnoreSpacesBash string = "    "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// IgnoreTabs is the tab character
 | 
				
			||||||
 | 
						IgnoreTabs string = "\t"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// NewScriptFromString is used to build an executable script from the content in string form.
 | 
				
			||||||
 | 
					func NewScriptFromString(str string) *Script {
 | 
				
			||||||
 | 
						script := &Script{}
 | 
				
			||||||
 | 
						removeRuleF := func(str string, rs []string) string {
 | 
				
			||||||
 | 
							for _, r := range rs {
 | 
				
			||||||
 | 
								str = strings.Replace(str, r, "", -1)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return str
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						str = strings.Replace(str, "\\\n", "", -1)
 | 
				
			||||||
 | 
						str = removeRuleF(str, []string{IgnoreSpacesBash, IgnoreTabs})
 | 
				
			||||||
 | 
						spl := strings.Split(str, "\n")
 | 
				
			||||||
 | 
						//logger.Info("Script lines: %d", len(spl))
 | 
				
			||||||
 | 
						for _, line := range spl {
 | 
				
			||||||
 | 
							script.commands = append(script.commands, line)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return script
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Interpret is used to procedurally execute a script. The script will execute each line independently
 | 
				
			||||||
 | 
					// and can error at any point in the executation path.
 | 
				
			||||||
 | 
					func (s *Script) Interpret() error {
 | 
				
			||||||
 | 
						//logger.Info("Running script...")
 | 
				
			||||||
 | 
						for i, cmdStr := range s.commands {
 | 
				
			||||||
 | 
							// Exec will hang for output
 | 
				
			||||||
 | 
							// Ignore newlines
 | 
				
			||||||
 | 
							// Ignore comments starting with #
 | 
				
			||||||
 | 
							// Ignore comments starting with //
 | 
				
			||||||
 | 
							if cmdStr == "\n" || cmdStr == "" || strings.HasPrefix(cmdStr, "#") || strings.HasPrefix(cmdStr, "//") {
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							logger.Info("Executing: [%s]", cmdStr)
 | 
				
			||||||
 | 
							result, err := Exec(cmdStr)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return fmt.Errorf("error executing  running command [%s] on line [%d]\n%v\n", cmdStr, i+1, err)
 | 
				
			||||||
 | 
							} else if result.exitCode != 0 {
 | 
				
			||||||
 | 
								return fmt.Errorf("non zero exit code running command [%s] on line [%d]\n%s\n%s\n", cmdStr, i+1, result.Stdout(), result.Stderr())
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							// Here is where we log STDOUT from a "script"
 | 
				
			||||||
 | 
							// Right now it is set to DEBUG which can be enabled by
 | 
				
			||||||
 | 
							// setting logger.Level = 4
 | 
				
			||||||
 | 
							logger.Debug(result.Stdout())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ExecResult struct {
 | 
				
			||||||
 | 
						stderr   string
 | 
				
			||||||
 | 
						stdout   string
 | 
				
			||||||
 | 
						exitCode int
 | 
				
			||||||
 | 
						execErr  exec.ExitError
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (e *ExecResult) Stdout() string {
 | 
				
			||||||
 | 
						return e.stdout
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (e *ExecResult) Stderr() string {
 | 
				
			||||||
 | 
						return e.stderr
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (e *ExecResult) ExitCode() int {
 | 
				
			||||||
 | 
						if e == nil {
 | 
				
			||||||
 | 
							return 0
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return e.exitCode
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (e *ExecResult) ExecError() exec.ExitError {
 | 
				
			||||||
 | 
						return e.execErr
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Exec will take an arbitrary executable string
 | 
				
			||||||
 | 
					// and hang until the command exits
 | 
				
			||||||
 | 
					func Exec(str string) (*ExecResult, error) {
 | 
				
			||||||
 | 
						//logger.Info("Exec [%s]", str)
 | 
				
			||||||
 | 
						var cmdstr string
 | 
				
			||||||
 | 
						var args []string
 | 
				
			||||||
 | 
						var l int
 | 
				
			||||||
 | 
						spl := strings.Split(str, " ")
 | 
				
			||||||
 | 
						l = len(spl)
 | 
				
			||||||
 | 
						if l == 1 {
 | 
				
			||||||
 | 
							// <cmd>
 | 
				
			||||||
 | 
							cmdstr = spl[0]
 | 
				
			||||||
 | 
						} else if l > 1 {
 | 
				
			||||||
 | 
							// <cmd> <arg>...
 | 
				
			||||||
 | 
							cmdstr = spl[0]
 | 
				
			||||||
 | 
							for i := 1; i < l; i++ {
 | 
				
			||||||
 | 
								args = append(args, spl[i])
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else if l < 1 {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("invalid Exec() string %s", str)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fqpcmd, err := exec.LookPath(cmdstr)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							logger.Debug("unable to find fully qualified path for executable %s: %v", cmdstr, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//logger.Info("Command: %s", fqpcmd)
 | 
				
			||||||
 | 
						//logger.Info("Args: %v", args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						stdoutBuffer := bytes.Buffer{}
 | 
				
			||||||
 | 
						stderrBuffer := bytes.Buffer{}
 | 
				
			||||||
 | 
						e := []string{fqpcmd}
 | 
				
			||||||
 | 
						for _, arg := range args {
 | 
				
			||||||
 | 
							e = append(e, arg)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						cmd := exec.Command(e[0], e[1:]...)
 | 
				
			||||||
 | 
						cmd.Stdout = &stdoutBuffer
 | 
				
			||||||
 | 
						cmd.Stderr = &stderrBuffer
 | 
				
			||||||
 | 
						result := &ExecResult{}
 | 
				
			||||||
 | 
						err = cmd.Run()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							if eerr, ok := err.(*exec.ExitError); ok {
 | 
				
			||||||
 | 
								result.stderr = stderrBuffer.String()
 | 
				
			||||||
 | 
								result.stdout = stdoutBuffer.String()
 | 
				
			||||||
 | 
								result.exitCode = eerr.ExitCode()
 | 
				
			||||||
 | 
								result.execErr = *eerr
 | 
				
			||||||
 | 
								return result, nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("major error running command [%s]: %v", str, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						result.stderr = stderrBuffer.String()
 | 
				
			||||||
 | 
						result.stdout = stdoutBuffer.String()
 | 
				
			||||||
 | 
						result.exitCode = 0
 | 
				
			||||||
 | 
						return result, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								sample-app/pcreate
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					####################################
 | 
				
			||||||
 | 
					#####
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Startup Script for the Application
 | 
				
			||||||
 | 
					####################################
 | 
				
			||||||
 | 
					echo "Creating [SampleApp]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO Nova
 | 
				
			||||||
 | 
					# TODO Per edude03ontwitch we want to actually mount /photoprism/whatever
 | 
				
			||||||
 | 
					docker run -d \
 | 
				
			||||||
 | 
					    --name photoprism \
 | 
				
			||||||
 | 
					    -p 8080:2342 \
 | 
				
			||||||
 | 
					    -e PHOTOPRISM_UPLOAD_NSFW="true" \
 | 
				
			||||||
 | 
					    -e PHOTOPRISM_ADMIN_PASSWORD="missy" \
 | 
				
			||||||
 | 
					    -v ${GOPATH}/src/github.com/astravexton/photoprism-client-go/sample-app/photoprism/import:/photoprism/import \
 | 
				
			||||||
 | 
					    -v ${GOPATH}/src/github.com/astravexton/photoprism-client-go/sample-app/photoprism/originals:/photoprism/originals \
 | 
				
			||||||
 | 
					    -v ${GOPATH}/src/github.com/astravexton/photoprism-client-go/sample-app/photoprism/storage:/photoprism/storage \
 | 
				
			||||||
 | 
					    photoprism/photoprism:latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								sample-app/pdestroy
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					####################################
 | 
				
			||||||
 | 
					#####
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Startup Script for the Application
 | 
				
			||||||
 | 
					####################################
 | 
				
			||||||
 | 
					echo "Destroying [SampleApp]"
 | 
				
			||||||
 | 
					docker stop photoprism
 | 
				
			||||||
 | 
					docker rm photoprism
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/originals/2021/02/20210204_031706_36A3FD61.jpeg
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 592 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/originals/2021/02/20210204_031706_5B740007.jpg
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 114 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/originals/2021/02/20210204_031706_76642B51.jpeg
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 380 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/originals/2021/02/20210204_031706_AE1CC552.jpg
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 134 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/storage/ElgexEiU8AA-pQO.jpeg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 380 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/storage/EpTcef3VoAEiaS4.jpeg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 592 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/storage/IMG_3044.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 114 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sample-app/photoprism/storage/NVA05562.JPG
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 134 KiB  | 
							
								
								
									
										17
									
								
								sample-app/photoprism/storage/albums/album/aqnzih81icziiyae.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					UID: aqnzih81icziiyae
 | 
				
			||||||
 | 
					Slug: february-2021
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: February 2021
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-04T03:17:32Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-04T03:17:32Z
 | 
				
			||||||
 | 
					Photos:
 | 
				
			||||||
 | 
					- UID: pqnzigq156lndozm
 | 
				
			||||||
 | 
					  CreatedAt: 2021-02-04T03:17:40.83892969Z
 | 
				
			||||||
 | 
					- UID: pqnzigq1jb1bibrz
 | 
				
			||||||
 | 
					  CreatedAt: 2021-02-04T03:17:40.846632301Z
 | 
				
			||||||
 | 
					- UID: pqnzigq351j2fqgn
 | 
				
			||||||
 | 
					  CreatedAt: 2021-02-04T03:17:40.851856107Z
 | 
				
			||||||
 | 
					- UID: pqnzigq3sidxb0j0
 | 
				
			||||||
 | 
					  CreatedAt: 2021-02-04T03:17:40.857083572Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe01hgxpo1hjih.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe01hgxpo1hjih
 | 
				
			||||||
 | 
					Slug: novaalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: NovaAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:03:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:03:18Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:14:45.771988424Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe0941aw0wz0rj.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe0941aw0wz0rj
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:07:53Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:07:53Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:14:36.400063828Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe0j0nog2wtd98.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe0j0nog2wtd98
 | 
				
			||||||
 | 
					Slug: february-2021
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: February 2021
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:13:49Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:13:49Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:14:30.637709439Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe0o1v8rjprqy6.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe0o1v8rjprqy6
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:16:49Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:16:49.091245891Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:18:32.10184988Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe0xu1149t43i3.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe0xu1149t43i3
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:22:42Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:22:42.31692892Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:14:52.285222547Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe0zl3h1wak08f.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe0zl3h1wak08f
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:23:46Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:23:45.864716162Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:24:31.729202695Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe1231tb94a48k.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe1231tb94a48k
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:25:16Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:25:15.61908592Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:14:52.285222547Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe1981fbhzaou2.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe1981fbhzaou2
 | 
				
			||||||
 | 
					Slug: novaalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: NovaAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:29:33Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:29:33Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:14:52.285222547Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe1bw1ywyawhlb.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe1bw1ywyawhlb
 | 
				
			||||||
 | 
					Slug: novaalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: NovaAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:31:08Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:31:08Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:31:08.058407849Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe1cs1rrfaer9d.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe1cs1rrfaer9d
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:31:41Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:31:40.791556222Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:31:40.798855984Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe1mn3669ed8vc.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe1mn3669ed8vc
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:37:36Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:37:35.931076271Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:37:35.938663557Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe1mnib00h33mh.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe1mnib00h33mh
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:37:36Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:37:36Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:37:35.984813813Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe1su2yz12rn7r.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe1su2yz12rn7r
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:41:19Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:41:19Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:41:18.568153261Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe1su312pday8a.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe1su312pday8a
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:41:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:41:18.505274668Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:41:18.517183797Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe1su3gj3q7mrk.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe1su3gj3q7mrk
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:41:19Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:41:19Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:41:18.592298473Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2nw1mc3m0c95.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2nw1mc3m0c95
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:59:56.834221161Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2nw2mtjrlyuq.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2nw2mtjrlyuq
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:59:56.78263971Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2nw310xqz9f1.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2nw310xqz9f1
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:59:56.805849627Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe2nws4nefmwtt.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe2nws4nefmwtt
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-11T23:59:57Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-11T23:59:56.727315788Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-11T23:59:56.734742155Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2u021a4zjufp.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2u021a4zjufp
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:03:36.899233684Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2u0299hfp9uf.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2u0299hfp9uf
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:03:36.927067016Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe2u03t1k09mbq.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe2u03t1k09mbq
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:03:36.846932177Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:03:36.854999187Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2u0zakwm0kh4.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2u0zakwm0kh4
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:03:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:03:36.955701902Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe2y1x2v9ulekw.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe2y1x2v9ulekw
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:06:01.997666242Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:06:02.008962725Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2y233f9xc3me.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2y233f9xc3me
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:06:02.061930815Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2y23iah7q8dd.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2y23iah7q8dd
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:06:02.107878556Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe2y23n8shfo26.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe2y23n8shfo26
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:06:02Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:06:02.083118581Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe310mqejp7sjx.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe310mqejp7sjx
 | 
				
			||||||
 | 
					Slug: novaalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: NovaAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:07:48Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:07:48Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:07:48.087397413Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe3di2oe0gj7eb.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe3di2oe0gj7eb
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:15:18.326635885Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:15:18.337623732Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3di3f013g098.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3di3f013g098
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:15:18.387748516Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3di3rfrp4osq.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3di3rfrp4osq
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:15:18.417353099Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3di9wl91qjy1.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3di9wl91qjy1
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:15:18Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:15:18.441462643Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3go3alpu9g42.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3go3alpu9g42
 | 
				
			||||||
 | 
					Slug: february-2021-2
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: February 2021 (2)
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:17:12Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:17:12Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:25:55.610343844Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3sj140onsu3u.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3sj140onsu3u
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:24:20Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:24:20Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:24:19.584898324Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe3sj2oim76rfl.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe3sj2oim76rfl
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:24:19Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:24:19.452079212Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:24:19.46454459Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3sj3d9vpwfs6.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3sj3d9vpwfs6
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:24:19Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:24:19Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:24:19.513541437Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3sj5v7uxy0xi.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3sj5v7uxy0xi
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:24:20Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:24:20Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:24:19.539899181Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe3uk1ztdf4ly1.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe3uk1ztdf4ly1
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:25:32.382246374Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:25:32.39451528Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3uk2ssh3wlmu.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3uk2ssh3wlmu
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:25:32.501491328Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3uk3quu1oau5.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3uk3quu1oau5
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:25:32.438255604Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe3ukef6k7pr1n.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe3ukef6k7pr1n
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:25:32Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:25:32.457679012Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe43017x1x557a.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe43017x1x557a
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:30:36Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:30:36.452565204Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:30:36.466024116Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe43038gpo8o62.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe43038gpo8o62
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:30:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:30:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:30:36.541728272Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4303e2k7fowx.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4303e2k7fowx
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:30:36Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:30:36Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:30:36.515616836Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe430hjepljox7.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe430hjepljox7
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:30:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:30:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:30:36.590399562Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe46u1y7nllowc.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe46u1y7nllowc
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:32:54.670452125Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe46u2eytps9ks.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe46u2eytps9ks
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:32:54.621067369Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:32:54.629069306Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe46ugvoopsx2c.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe46ugvoopsx2c
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:32:54.738939626Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe46uh3251f3o5.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe46uh3251f3o5
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:32:55Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:32:54.694577526Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4k41ws8kl303.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4k41ws8kl303
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:40:52.236143624Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe4k420c8937zq.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe4k420c8937zq
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:40:52.149620745Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:40:52.157633931Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4k423kseyeok.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4k423kseyeok
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:40:52.205835621Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4k42wb7vdpy4.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4k42wb7vdpy4
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:40:52Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:40:52.346059642Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4m917yd0x5d8.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4m917yd0x5d8
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:42:09.739048804Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe4m91dd475mc2.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe4m91dd475mc2
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:42:09.68534495Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:42:09.697602792Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4m9204aigugh.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4m9204aigugh
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:19:49.19521169Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe4m93kl5118yf.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe4m93kl5118yf
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T00:42:10Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T00:42:09.764632667Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5s018umhsg2z.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5s018umhsg2z
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:07:12.278795475Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe5s02eypzy49n.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe5s02eypzy49n
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:07:12.18606883Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:07:12.20368425Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5s02htbyx02a.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5s02htbyx02a
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:07:12.25672608Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5s0kcesnf038.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5s0kcesnf038
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:07:12Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:07:12.311501625Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5um2nxaam1jf.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5um2nxaam1jf
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:08:46Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:08:46Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:08:46.441203314Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe5um3k2bjzdz3.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe5um3k2bjzdz3
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:08:46Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:08:46.349964437Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:08:46.364581421Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5umo46cx9up1.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5umo46cx9up1
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:08:46Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:08:46Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:08:46.414981534Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5zd1dhchzyrt.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5zd1dhchzyrt
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:11:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:11:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:11:37.410053582Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe5zd1n8nyjezg.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe5zd1n8nyjezg
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:11:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:11:37.317189151Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:11:37.337078186Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe5zdgv8bbtzbn.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe5zdgv8bbtzbn
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:11:37Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:11:37Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:11:37.38408389Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe63g15cp92acg.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe63g15cp92acg
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:14:05Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:14:04.617839652Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:14:04.630483844Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe63g1hvf4c37t.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe63g1hvf4c37t
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:14:05Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:14:05Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:14:04.683342935Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe63g1wp37dwns.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe63g1wp37dwns
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:14:05Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:14:05Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:14:04.720807005Z
 | 
				
			||||||
							
								
								
									
										10
									
								
								sample-app/photoprism/storage/albums/album/aqoe66r266y7x2ct.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					UID: aqoe66r266y7x2ct
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Description: An updated album description
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:16:03Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:16:03.089952155Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:16:03.103617951Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe66r304v81itt.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe66r304v81itt
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:16:03Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:16:03Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:16:03.147574525Z
 | 
				
			||||||
							
								
								
									
										9
									
								
								sample-app/photoprism/storage/albums/album/aqoe66r3bjgymp2o.yml
									
										
									
									
									
										Executable file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					UID: aqoe66r3bjgymp2o
 | 
				
			||||||
 | 
					Slug: testalbum
 | 
				
			||||||
 | 
					Type: album
 | 
				
			||||||
 | 
					Title: TestAlbum
 | 
				
			||||||
 | 
					Order: oldest
 | 
				
			||||||
 | 
					Country: zz
 | 
				
			||||||
 | 
					CreatedAt: 2021-02-12T01:16:03Z
 | 
				
			||||||
 | 
					UpdatedAt: 2021-02-12T01:16:03Z
 | 
				
			||||||
 | 
					DeletedAt: 2021-02-12T01:16:03.168746489Z
 | 
				
			||||||