defmodule WinticketRaceParser.Structs.Player do
alias WinticketRaceParser.Structs
@keys [
:number,
:absent,
:player_id,
:player,
:record,
:current_cup,
:latest_cups
]
@enforce_keys @keys
defstruct @keys
def validate(%{
number: number,
absent: absent,
player_id: player_id,
player: %Structs.PlayerDetail{} = player,
record: %Structs.PlayerRecord{} = record,
current_cup: current_cup,
latest_cups: latest_cups
})
when is_binary(number) and is_binary(player_id) and is_boolean(absent)
when is_list(current_cup) and is_list(latest_cups) do
%__MODULE__{
number: number,
absent: absent,
player_id: player_id,
player: player,
record: record,
current_cup: current_cup,
latest_cups: latest_cups
}
end
end