41f086e2c9
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
39 lines
713 B
Elixir
39 lines
713 B
Elixir
defmodule Mobilizon.Medias.Media.Metadata do
|
|
@moduledoc """
|
|
Represents a media metadata
|
|
"""
|
|
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
@type t :: %__MODULE__{
|
|
width: non_neg_integer(),
|
|
height: non_neg_integer(),
|
|
blurhash: String.t()
|
|
}
|
|
|
|
@required_attrs []
|
|
|
|
@optional_attrs [
|
|
:width,
|
|
:height,
|
|
:blurhash
|
|
]
|
|
|
|
@attrs @required_attrs ++ @optional_attrs
|
|
|
|
@primary_key false
|
|
embedded_schema do
|
|
field(:height, :integer)
|
|
field(:width, :integer)
|
|
field(:blurhash, :string)
|
|
end
|
|
|
|
@doc false
|
|
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
|
|
def changeset(schema, params) do
|
|
schema
|
|
|> cast(params, @attrs)
|
|
end
|
|
end
|