defmodule Noizu.Weaviate.Struct.ClassificationParams do
@moduledoc """
Struct for representing classification parameters in Weaviate.
"""
defstruct [:class_name, :classify_properties, :based_on_properties, :type]
@enforce_keys [:class_name, :classify_properties, :based_on_properties, :type]
def from_json(json) when is_list(json) do
Enum.map(json, & from_json(&1))
end
def from_json(nil) do
nil
end
def from_json(%{} = json) do
%__MODULE__{
class_name: json[:className],
classify_properties: json[:classifyProperties],
based_on_properties: json[:basedOnProperties],
type: json[:type]
}
end
end