photoprism/internal/entity/marker_json.go

59 lines
1.3 KiB
Go
Raw Normal View History

package entity
import (
"encoding/json"
"time"
)
// MarshalJSON returns the JSON encoding.
func (m *Marker) MarshalJSON() ([]byte, error) {
var subj *Subject
var name string
if subj = m.Subject(); subj == nil {
name = m.MarkerName
} else {
name = subj.SubjectName
}
return json.Marshal(&struct {
UID string
FileUID string
Type string
Src string
Name string
2021-09-02 23:47:37 +02:00
Invalid bool `json:",omitempty"`
X float32 `json:",omitempty"`
Y float32 `json:",omitempty"`
W float32 `json:",omitempty"`
H float32 `json:",omitempty"`
Size int `json:",omitempty"`
Score int `json:",omitempty"`
Review bool `json:",omitempty"`
2021-09-02 23:47:37 +02:00
CropID string `json:",omitempty"`
FaceID string `json:",omitempty"`
SubjectUID string `json:",omitempty"`
SubjectSrc string `json:",omitempty"`
CreatedAt time.Time
}{
UID: m.MarkerUID,
FileUID: m.FileUID,
Type: m.MarkerType,
Src: m.MarkerSrc,
Name: name,
2021-09-02 23:47:37 +02:00
Invalid: m.MarkerInvalid,
X: m.X,
Y: m.Y,
W: m.W,
H: m.H,
2021-09-02 23:47:37 +02:00
Size: m.Size,
Score: m.Score,
Review: m.Review,
CropID: m.CropID,
FaceID: m.FaceID,
SubjectUID: m.SubjectUID,
SubjectSrc: m.SubjectSrc,
CreatedAt: m.CreatedAt,
})
}