diff options
Diffstat (limited to 'pkg/components/media')
| -rw-r--r-- | pkg/components/media/model.go | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/pkg/components/media/model.go b/pkg/components/media/model.go new file mode 100644 index 0000000..f5c9ff6 --- /dev/null +++ b/pkg/components/media/model.go @@ -0,0 +1,57 @@ +package media + +import ( +	"context" +	"time" +) + +type ( +	Media struct { +		ID       uint +		Name     string +		Path     string +		PathHash string +		MIMEType string +	} + +	MediaEXIF struct { +		Description     *string +		Camera          *string +		Maker           *string +		Lens            *string +		DateShot        *time.Time +		Exposure        *float64 +		Aperture        *float64 +		Iso             *int64 +		FocalLength     *float64 +		Flash           *int64 +		Orientation     *int64 +		ExposureProgram *int64 +		GPSLatitude     *float64 +		GPSLongitude    *float64 +	} + +	Pagination struct { +		Page int +		Size int +	} + +	CreateMedia struct { +		Name     string +		Path     string +		PathHash string +		MIMEType string +	} + +	Repository interface { +		Create(context.Context, *CreateMedia) error +		Exists(context.Context, string) (bool, error) +		List(context.Context, *Pagination) ([]*Media, error) +		Get(context.Context, string) (*Media, error) +		GetPath(context.Context, string) (string, error) + +		GetEmptyEXIF(context.Context, *Pagination) ([]*Media, error) +		GetEXIF(context.Context, uint) (*MediaEXIF, error) +		CreateEXIF(context.Context, uint, *MediaEXIF) error +	} +) | 
