lib/teiserver/settings/schemas/server_setting.ex

defmodule Teiserver.Settings.ServerSetting do
  @moduledoc """
  # Site setting
  A key/value storage of settings used as part of the server.

  ### Attributes

  * `:key` - The key of the setting
  * `:email` - The value of the setting
  """
  use TeiserverMacros, :schema

  @primary_key false
  schema "settings_server_settings" do
    field(:key, :string, primary_key: true)
    field(:value, :string)

    timestamps()
  end

  @type t :: %__MODULE__{
          key: String.t(),
          value: String.t(),
          inserted_at: DateTime.t(),
          updated_at: DateTime.t()
        }

  @doc false
  def changeset(server_setting, attrs \\ %{}) do
    server_setting
    |> cast(attrs, ~w(key value)a)
    |> validate_required(~w(key value)a)
  end
end