class Gillbus::TicketsBooking::Request::Passenger

not a request, just a record for BookTickets

Attributes

birthday[RW]

passenger0birthday… passengerNbirthday (обязательный для авиаперевозки) Дата рождения пассажира с порядковым номером 0…N.

citizenship[RW]

passenger0citizenship… passengerNcitizenship (обязательный для авиаперевозки) Гражданство пассажира с порядковым номером 0…N. 2-х буквенный код страны, пример, Украина – UA.

discount[RW]

passenger0discountValue… passengerNdiscountValue (не обязательный) Величина скидки в валюте продажи для пассажира с порядковым номером 0…N.

document_type[RW]

passenger0documentType… passengerNdocumentType (не обязательный) Тип удостоверения личности (для определения типа документа, номер которого передан в параметре passport). Возможные значения: :passport 1 - паспорт :military_card 2 - военный билет :foreign_document 3 - иностранный документ :foreign_passport 4 - заграничный паспорт :seaman_passport 6 - паспорт моряка :birth_certificate 7 - свидетельство о рождении :ussr_passport 8 - паспорт формы СССР :tax_id 9 - CPF для WL Бразилии

first_name[RW]

passenger0firstName… passengerNfirstName (не обязательный) Имя пассажира с порядковым номером 0…N.

gender[RW]

passenger0gender… passengerNgender (обязательный для авиаперевозки) Пол пассажира с порядковым номером 0…N. M – мужской, F – женский.

insurance_cost[RW]
insurance_id[RW]
isic[RW]

passenger0ISIC…passengerNISIC (не обязательный) Номер ISIC пассажира с порядковым номером 0…N.

last_name[RW]

passenger0lastName… passengerNlastName (не обязательный) Фамилия пассажира с порядковым номером 0…N.

luggage[RW]

passenger0baggageCount… passengerNbaggageCount (не обязательный) На рейс без сегментов Количество мест багажа для пассажира с порядковым номером 0…N.

passport[RW]

passenger0passport… passengerNpassport (обязательный для авиаперевозки) Паспортные данные пассажира с порядковым номером 0…N.

passport_expire_date[RW]

passenger0passportExpireDate… passengerNpassportExpireDate (обязательный для авиаперевозки) Дата окончания действия паспорта пассажира с порядковым номером 0…N.

second_name[RW]

passenger0middleName… passengerNmiddleName (не обязательный) Отчество пассажира с порядковым номером 0…N.

segments_luggage[RW]

passenger0segment0baggageCount… passengerNsegmentMbaggageCount На рейс с сегментами Количество мест багажа для пассажира 0…N на сегмент 0…M

tariff_cost[RW]

passenger0tariffCost… passengerNtariffCost (не обязательный) Стоимость тарифа, полученное при поиске рейсов в списке тарифов, с кратким обозначением passenger0tariffShortName с порядковым номером 0…N.

tariff_short_name[RW]

passenger0tariffShortName… passengerNtariffShortName (не обязательный) Краткое обозначение тарифа, полученное при поиске рейсов в списке тарифов, по указанным passenger0studentTicket, passenger0birthday, passenger0ISIC.

Public Instance Methods

document_type_to_int(value) click to toggle source
# File lib/gillbus/tickets_booking.rb, line 207
def document_type_to_int(value)
  {
    passport: 1,
    military_card: 2,
    foreign_document: 3,
    foreign_passport: 4,
    seaman_passport: 6,
    birth_certificate: 7,
    ussr_passport: 8,
    tax_id: 9,
  }[value.try(:to_sym)]
end
params(prefix = '') click to toggle source
# File lib/gillbus/tickets_booking.rb, line 176
def params(prefix = '')
  # [0, 1] => {'segment0baggageCount' => 0, 'segment1baggageCount' => 1}
  prepared_segments_luggage =
    if segments_luggage
      segments_luggage.map.with_index do |luggage_count, index|
        ["segment#{index}baggageCount".to_sym, luggage_count]
      end.to_h
    else
      {}
    end
  compact(
    birthday: date(birthday),
    ISIC: isic,
    firstName: first_name,
    lastName: last_name,
    middleName: second_name,
    tariffShortName: tariff_short_name,
    tariffCost: tariff_cost,
    documentType: document_type_to_int(document_type),
    passport: passport,
    passportExpireDate: passport_expire_date,
    citizenship: citizenship,
    gender: gender,
    discountValue: discount.to_f.to_s,
    insuranceId: insurance_id,
    insurance: insurance_cost,
    baggageCount: luggage&.first, # luggage используется для односегментных
    **prepared_segments_luggage,
  ).map { |k, v| [:"#{prefix}#{k}", v] }.to_h
end