Files
photocli/internal/photos/types.go
T
Ein Anderssono fffb30023b
pipeline / test (push) Has been cancelled
pipeline / build (push) Has been cancelled
v0.8.0: enrich XMP metadata
2026-06-15 01:21:49 +02:00

110 lines
3.9 KiB
Go

package photos
type Album struct {
ID string `json:"id"`
Title string `json:"title"`
}
type Asset struct {
ID string `json:"id"`
Filename string `json:"filename"`
Cloud string `json:"cloud"`
MediaType string `json:"mediaType"`
MediaSubtypes []string `json:"mediaSubtypes,omitempty"`
SourceType string `json:"sourceType,omitempty"`
PlaybackStyle string `json:"playbackStyle,omitempty"`
PixelWidth int `json:"pixelWidth"`
PixelHeight int `json:"pixelHeight"`
CreationDate *string `json:"creationDate,omitempty"`
ModificationDate *string `json:"modificationDate,omitempty"`
Duration float64 `json:"duration,omitempty"`
IsFavorite bool `json:"isFavorite,omitempty"`
IsHidden bool `json:"isHidden,omitempty"`
HasAdjustments bool `json:"hasAdjustments,omitempty"`
Location *AssetLocation `json:"location,omitempty"`
BurstIdentifier string `json:"burstIdentifier,omitempty"`
RepresentsBurst bool `json:"representsBurst,omitempty"`
BurstSelectionTypes []string `json:"burstSelectionTypes,omitempty"`
AdjustmentInfo *AdjustmentInfo `json:"adjustmentInfo,omitempty"`
Resources []AssetResource `json:"resources,omitempty"`
}
type AssetLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Altitude float64 `json:"altitude,omitempty"`
HorizontalAccuracy float64 `json:"horizontalAccuracy,omitempty"`
}
type AdjustmentInfo struct {
FormatIdentifier string `json:"formatIdentifier,omitempty"`
FormatVersion string `json:"formatVersion,omitempty"`
BaseFilename string `json:"baseFilename,omitempty"`
}
type AssetResource struct {
Type string `json:"type"`
Filename string `json:"filename"`
UTI string `json:"uti"`
Local bool `json:"local"`
Size int64 `json:"size,omitempty"`
}
type Placemark struct {
Name string `json:"name,omitempty"`
Country string `json:"country,omitempty"`
CountryCode string `json:"countryCode,omitempty"`
AdministrativeArea string `json:"administrativeArea,omitempty"`
SubAdministrativeArea string `json:"subAdministrativeArea,omitempty"`
Locality string `json:"locality,omitempty"`
SubLocality string `json:"subLocality,omitempty"`
Thoroughfare string `json:"thoroughfare,omitempty"`
SubThoroughfare string `json:"subThoroughfare,omitempty"`
PostalCode string `json:"postalCode,omitempty"`
FormattedAddress string `json:"formattedAddress,omitempty"`
InlandWater string `json:"inlandWater,omitempty"`
Ocean string `json:"ocean,omitempty"`
AreasOfInterest []string `json:"areasOfInterest,omitempty"`
}
type PlacemarkResponse struct {
Placemark Placemark `json:"placemark"`
Error string `json:"error,omitempty"`
}
type ExportResult struct {
Filename string `json:"filename"`
Size int64 `json:"size"`
Cloud string `json:"cloud"`
Skipped bool `json:"skipped,omitempty"`
Error string `json:"error,omitempty"`
}
type CollectionNode struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Kind string `json:"kind"`
Children []CollectionNode `json:"children,omitempty"`
}
type AlbumsResponse struct {
Albums []Album `json:"albums"`
}
type AssetsResponse struct {
Assets []Asset `json:"assets"`
Total int `json:"total"`
}
type TreeResponse struct {
Collections []CollectionNode `json:"collections"`
}
type ErrorResponse struct {
Error string `json:"error"`
}
type ExportResultResponse struct {
ExportResult
}