defmodule ExTheOne.Struct.MovieResponse do
@moduledoc """
The One API response Movie struct
"""
alias __MODULE__
@type docs :: list(movie)
@type movie :: %{
_id: String.t(),
academyAwardNominations: integer(),
academyAwardWins: integer(),
boxOfficeRevenueInMillions: float(),
budgetInMillions: integer(),
name: String.t(),
rottenTomatoesScore: integer(),
runtimeInMinutes: integer(),
}
@type limit :: integer()
@type offset :: integer()
@type page :: integer()
@type pages :: integer()
@type total :: integer()
@type t() :: %MovieResponse{
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(MovieResponse, data)}
end