defmodule ExTheOne.Struct.QuoteResponse do
@moduledoc """
The One API response quote struct
"""
alias __MODULE__
@type docs :: list(quote)
@type quote :: %{
_id: String.t(),
character: String.t(),
dialog: String.t(),
id: String.t(),
movie: String.t()
}
@type limit :: integer()
@type offset :: integer()
@type page :: integer()
@type pages :: integer()
@type total :: integer()
@type t() :: %QuoteResponse{
docs: docs(),
limit: limit(),
offset: offset(),
page: page(),
pages: pages(),
total: total()
}
defstruct [:docs, :limit, :offset, :page, :pages, :total]
def to_struct(data), do: {:ok, struct(QuoteResponse, data)}
end