lib/winticket_race_parser/structs/player_detail.ex

defmodule WinticketRaceParser.Structs.PlayerDetail do
  @keys [
    :name,
    :term,
    :class,
    :group
  ]

  @enforce_keys @keys

  defstruct @keys

  def validate(%{
        name: name,
        term: term,
        class: class,
        group: group
      })
      when is_binary(name) and is_integer(term) and is_integer(class) and is_integer(group) do
    %__MODULE__{
      name: name,
      term: term,
      class: class,
      group: group
    }
  end
end