defmodule Requests.Payments.Payment.FlightLegDetail do
@type t() :: %{
flight_number: integer(),
carrier_code: String.t(),
service_class: String.t(),
departure_date: String.t(),
departure_time: String.t(),
departure_airport: String.t(),
arrival_airport: String.t(),
stopover_code: String.t(),
fare_basis_code: String.t()
}
@enforce_keys [:arrival_airport, :departure_airport]
defstruct [
:flight_number,
:carrier_code,
:service_class,
:departure_date,
:departure_time,
:departure_airport,
:arrival_airport,
:stopover_code,
:fare_basis_code
]
def build(params) when is_map(params) do
%{
flight_number: params[:flight_number],
carrier_code: params[:carrier_code],
service_class: params[:service_class],
departure_date: params[:departure_date],
departure_time: params[:departure_time],
departure_airport: params[:departure_airport],
arrival_airport: params[:arrival_airport],
stopover_code: params[:stopover_code],
fare_basis_code: params[:fare_basis_code]
}
end
def build(_), do: nil
end