defmodule Flagsmith.API.TraitSerializerBasic do use TypedEctoSchema import Ecto.Changeset alias Flagsmith.SDK.Types @moduledoc """ Ecto schema representing a Flagsmith trait definition and helpers to cast responses from the api. """ @primary_key false typed_embedded_schema do field(:id, :integer) field(:trait_key, :string) field(:trait_value, :string) end @spec changeset(Types.params()) :: Ecto.Changeset.t() @spec changeset(__MODULE__.t(), Types.params()) :: Ecto.Changeset.t() def changeset(struct \\ %__MODULE__{}, params) do struct |> cast(params, [:trait_value, :trait_key, :id]) |> validate_required([:trait_value, :trait_key]) end end