yoomoney 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/yoomoney/internal/util.rb +31 -0
  5. data/lib/yoomoney/models/airline.rb +50 -6
  6. data/lib/yoomoney/models/deal_retrieve_params.rb +7 -1
  7. data/lib/yoomoney/models/invoice_retrieve_params.rb +7 -1
  8. data/lib/yoomoney/models/payment_cancel_params.rb +7 -1
  9. data/lib/yoomoney/models/payment_capture_params.rb +8 -1
  10. data/lib/yoomoney/models/payment_method_retrieve_params.rb +7 -1
  11. data/lib/yoomoney/models/payment_retrieve_params.rb +7 -1
  12. data/lib/yoomoney/models/payout_retrieve_params.rb +7 -1
  13. data/lib/yoomoney/models/personal_data_create_params.rb +70 -46
  14. data/lib/yoomoney/models/personal_data_retrieve_params.rb +7 -1
  15. data/lib/yoomoney/models/receipt_create_params.rb +120 -2
  16. data/lib/yoomoney/models/receipt_data.rb +123 -3
  17. data/lib/yoomoney/models/receipt_retrieve_params.rb +7 -1
  18. data/lib/yoomoney/models/refund_retrieve_params.rb +7 -1
  19. data/lib/yoomoney/models/webhook_delete_params.rb +7 -1
  20. data/lib/yoomoney/models.rb +0 -6
  21. data/lib/yoomoney/resources/deals.rb +2 -1
  22. data/lib/yoomoney/resources/me.rb +2 -1
  23. data/lib/yoomoney/resources/payments.rb +2 -1
  24. data/lib/yoomoney/resources/payouts.rb +4 -2
  25. data/lib/yoomoney/resources/personal_data.rb +4 -16
  26. data/lib/yoomoney/resources/receipts.rb +2 -1
  27. data/lib/yoomoney/resources/refunds.rb +2 -1
  28. data/lib/yoomoney/version.rb +1 -1
  29. data/lib/yoomoney.rb +1 -4
  30. data/rbi/yoomoney/internal/util.rbi +20 -0
  31. data/rbi/yoomoney/models/airline.rbi +84 -8
  32. data/rbi/yoomoney/models/deal_retrieve_params.rbi +13 -5
  33. data/rbi/yoomoney/models/invoice_retrieve_params.rbi +13 -5
  34. data/rbi/yoomoney/models/payment_cancel_params.rbi +10 -2
  35. data/rbi/yoomoney/models/payment_capture_params.rbi +6 -0
  36. data/rbi/yoomoney/models/payment_method_retrieve_params.rbi +16 -5
  37. data/rbi/yoomoney/models/payment_retrieve_params.rbi +13 -5
  38. data/rbi/yoomoney/models/payout_retrieve_params.rbi +13 -5
  39. data/rbi/yoomoney/models/personal_data_create_params.rbi +140 -55
  40. data/rbi/yoomoney/models/personal_data_retrieve_params.rbi +16 -5
  41. data/rbi/yoomoney/models/receipt_create_params.rbi +159 -1
  42. data/rbi/yoomoney/models/receipt_data.rbi +185 -3
  43. data/rbi/yoomoney/models/receipt_retrieve_params.rbi +13 -5
  44. data/rbi/yoomoney/models/refund_retrieve_params.rbi +13 -5
  45. data/rbi/yoomoney/models/webhook_delete_params.rbi +13 -5
  46. data/rbi/yoomoney/models.rbi +0 -6
  47. data/rbi/yoomoney/resources/personal_data.rbi +7 -19
  48. data/sig/yoomoney/internal/util.rbs +10 -0
  49. data/sig/yoomoney/models/airline.rbs +58 -12
  50. data/sig/yoomoney/models/deal_retrieve_params.rbs +11 -3
  51. data/sig/yoomoney/models/invoice_retrieve_params.rbs +11 -3
  52. data/sig/yoomoney/models/payment_cancel_params.rbs +6 -1
  53. data/sig/yoomoney/models/payment_capture_params.rbs +5 -0
  54. data/sig/yoomoney/models/payment_method_retrieve_params.rbs +12 -3
  55. data/sig/yoomoney/models/payment_retrieve_params.rbs +11 -3
  56. data/sig/yoomoney/models/payout_retrieve_params.rbs +11 -3
  57. data/sig/yoomoney/models/personal_data_create_params.rbs +73 -29
  58. data/sig/yoomoney/models/personal_data_retrieve_params.rbs +12 -3
  59. data/sig/yoomoney/models/receipt_create_params.rbs +119 -7
  60. data/sig/yoomoney/models/receipt_data.rbs +128 -4
  61. data/sig/yoomoney/models/receipt_retrieve_params.rbs +11 -3
  62. data/sig/yoomoney/models/refund_retrieve_params.rbs +11 -3
  63. data/sig/yoomoney/models/webhook_delete_params.rbs +11 -3
  64. data/sig/yoomoney/models.rbs +0 -6
  65. data/sig/yoomoney/resources/personal_data.rbs +1 -5
  66. metadata +2 -11
  67. data/lib/yoomoney/models/airline_leg.rb +0 -33
  68. data/lib/yoomoney/models/airline_passenger.rb +0 -21
  69. data/lib/yoomoney/models/receipt_data_item.rb +0 -125
  70. data/rbi/yoomoney/models/airline_leg.rbi +0 -56
  71. data/rbi/yoomoney/models/airline_passenger.rbi +0 -28
  72. data/rbi/yoomoney/models/receipt_data_item.rbi +0 -185
  73. data/sig/yoomoney/models/airline_leg.rbs +0 -37
  74. data/sig/yoomoney/models/airline_passenger.rbs +0 -15
  75. data/sig/yoomoney/models/receipt_data_item.rbs +0 -127
@@ -5,8 +5,8 @@ module Yoomoney
5
5
  class ReceiptData < Yoomoney::Internal::Type::BaseModel
6
6
  # @!attribute items
7
7
  #
8
- # @return [Array<Yoomoney::Models::ReceiptDataItem>]
9
- required :items, -> { Yoomoney::Internal::Type::ArrayOf[Yoomoney::ReceiptDataItem] }
8
+ # @return [Array<Yoomoney::Models::ReceiptData::Item>]
9
+ required :items, -> { Yoomoney::Internal::Type::ArrayOf[Yoomoney::ReceiptData::Item] }
10
10
 
11
11
  # @!attribute customer
12
12
  #
@@ -39,13 +39,133 @@ module Yoomoney
39
39
  optional :timezone, String
40
40
 
41
41
  # @!method initialize(items:, customer: nil, internet: nil, receipt_industry_details: nil, receipt_operational_details: nil, tax_system_code: nil, timezone: nil)
42
- # @param items [Array<Yoomoney::Models::ReceiptDataItem>]
42
+ # @param items [Array<Yoomoney::Models::ReceiptData::Item>]
43
43
  # @param customer [Yoomoney::Models::ReceiptDataCustomer]
44
44
  # @param internet [Boolean]
45
45
  # @param receipt_industry_details [Array<Yoomoney::Models::IndustryDetails>]
46
46
  # @param receipt_operational_details [Yoomoney::Models::OperationalDetails]
47
47
  # @param tax_system_code [Integer]
48
48
  # @param timezone [String]
49
+
50
+ class Item < Yoomoney::Internal::Type::BaseModel
51
+ # @!attribute amount
52
+ # Сумма.
53
+ #
54
+ # @return [Yoomoney::Models::MonetaryAmount]
55
+ required :amount, -> { Yoomoney::MonetaryAmount }
56
+
57
+ # @!attribute description
58
+ # Название товара.
59
+ #
60
+ # @return [String]
61
+ required :description, String
62
+
63
+ # @!attribute quantity
64
+ # Количество.
65
+ #
66
+ # @return [Float]
67
+ required :quantity, Float
68
+
69
+ # @!attribute vat_code
70
+ # Ставка НДС.
71
+ #
72
+ # @return [Integer]
73
+ required :vat_code, Integer
74
+
75
+ # @!attribute country_of_origin_code
76
+ #
77
+ # @return [String, nil]
78
+ optional :country_of_origin_code, String
79
+
80
+ # @!attribute customs_declaration_number
81
+ #
82
+ # @return [String, nil]
83
+ optional :customs_declaration_number, String
84
+
85
+ # @!attribute excise
86
+ #
87
+ # @return [String, nil]
88
+ optional :excise, String
89
+
90
+ # @!attribute mark_code_info
91
+ #
92
+ # @return [Yoomoney::Models::MarkCodeInfo, nil]
93
+ optional :mark_code_info, -> { Yoomoney::MarkCodeInfo }
94
+
95
+ # @!attribute mark_mode
96
+ #
97
+ # @return [String, nil]
98
+ optional :mark_mode, String
99
+
100
+ # @!attribute mark_quantity
101
+ #
102
+ # @return [Yoomoney::Models::MarkQuantity, nil]
103
+ optional :mark_quantity, -> { Yoomoney::MarkQuantity }
104
+
105
+ # @!attribute measure
106
+ #
107
+ # @return [Symbol, Yoomoney::Models::ReceiptItemMeasure, nil]
108
+ optional :measure, enum: -> { Yoomoney::ReceiptItemMeasure }
109
+
110
+ # @!attribute payment_mode
111
+ #
112
+ # @return [Symbol, Yoomoney::Models::ReceiptItemPaymentMode, nil]
113
+ optional :payment_mode, enum: -> { Yoomoney::ReceiptItemPaymentMode }
114
+
115
+ # @!attribute payment_subject
116
+ #
117
+ # @return [Symbol, Yoomoney::Models::ReceiptItemPaymentSubject, nil]
118
+ optional :payment_subject, enum: -> { Yoomoney::ReceiptItemPaymentSubject }
119
+
120
+ # @!attribute payment_subject_industry_details
121
+ #
122
+ # @return [Array<Yoomoney::Models::IndustryDetails>, nil]
123
+ optional :payment_subject_industry_details,
124
+ -> { Yoomoney::Internal::Type::ArrayOf[Yoomoney::IndustryDetails] }
125
+
126
+ # @!attribute planned_status
127
+ #
128
+ # @return [Integer, nil]
129
+ optional :planned_status, Integer
130
+
131
+ # @!attribute product_code
132
+ #
133
+ # @return [String, nil]
134
+ optional :product_code, String
135
+
136
+ # @!method initialize(amount:, description:, quantity:, vat_code:, country_of_origin_code: nil, customs_declaration_number: nil, excise: nil, mark_code_info: nil, mark_mode: nil, mark_quantity: nil, measure: nil, payment_mode: nil, payment_subject: nil, payment_subject_industry_details: nil, planned_status: nil, product_code: nil)
137
+ # @param amount [Yoomoney::Models::MonetaryAmount] Сумма.
138
+ #
139
+ # @param description [String] Название товара.
140
+ #
141
+ # @param quantity [Float] Количество.
142
+ #
143
+ # @param vat_code [Integer] Ставка НДС.
144
+ #
145
+ # @param country_of_origin_code [String]
146
+ #
147
+ # @param customs_declaration_number [String]
148
+ #
149
+ # @param excise [String]
150
+ #
151
+ # @param mark_code_info [Yoomoney::Models::MarkCodeInfo]
152
+ #
153
+ # @param mark_mode [String]
154
+ #
155
+ # @param mark_quantity [Yoomoney::Models::MarkQuantity]
156
+ #
157
+ # @param measure [Symbol, Yoomoney::Models::ReceiptItemMeasure]
158
+ #
159
+ # @param payment_mode [Symbol, Yoomoney::Models::ReceiptItemPaymentMode]
160
+ #
161
+ # @param payment_subject [Symbol, Yoomoney::Models::ReceiptItemPaymentSubject]
162
+ #
163
+ # @param payment_subject_industry_details [Array<Yoomoney::Models::IndustryDetails>]
164
+ #
165
+ # @param planned_status [Integer]
166
+ #
167
+ # @param product_code [String]
168
+ end
49
169
  end
50
170
  end
51
171
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute receipt_id
11
+ #
12
+ # @return [String]
13
+ required :receipt_id, String
14
+
15
+ # @!method initialize(receipt_id:, request_options: {})
16
+ # @param receipt_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute refund_id
11
+ #
12
+ # @return [String]
13
+ required :refund_id, String
14
+
15
+ # @!method initialize(refund_id:, request_options: {})
16
+ # @param refund_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute webhook_id
11
+ #
12
+ # @return [String]
13
+ required :webhook_id, String
14
+
15
+ # @!method initialize(webhook_id:, request_options: {})
16
+ # @param webhook_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -41,10 +41,6 @@ module Yoomoney
41
41
 
42
42
  Airline = Yoomoney::Models::Airline
43
43
 
44
- AirlineLeg = Yoomoney::Models::AirlineLeg
45
-
46
- AirlinePassenger = Yoomoney::Models::AirlinePassenger
47
-
48
44
  B2bSberbankCalculatedVatData = Yoomoney::Models::B2bSberbankCalculatedVatData
49
45
 
50
46
  B2bSberbankMixedVatData = Yoomoney::Models::B2bSberbankMixedVatData
@@ -175,8 +171,6 @@ module Yoomoney
175
171
 
176
172
  ReceiptDataCustomer = Yoomoney::Models::ReceiptDataCustomer
177
173
 
178
- ReceiptDataItem = Yoomoney::Models::ReceiptDataItem
179
-
180
174
  ReceiptItemAgentType = Yoomoney::Models::ReceiptItemAgentType
181
175
 
182
176
  ReceiptItemMeasure = Yoomoney::Models::ReceiptItemMeasure
@@ -74,10 +74,11 @@ module Yoomoney
74
74
  # @see Yoomoney::Models::DealListParams
75
75
  def list(params = {})
76
76
  parsed, options = Yoomoney::DealListParams.dump_request(params)
77
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
77
78
  @client.request(
78
79
  method: :get,
79
80
  path: "deals",
80
- query: parsed,
81
+ query: query,
81
82
  model: Yoomoney::Models::DealListResponse,
82
83
  options: options
83
84
  )
@@ -15,10 +15,11 @@ module Yoomoney
15
15
  # @see Yoomoney::Models::MeRetrieveParams
16
16
  def retrieve(params = {})
17
17
  parsed, options = Yoomoney::MeRetrieveParams.dump_request(params)
18
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
18
19
  @client.request(
19
20
  method: :get,
20
21
  path: "me",
21
- query: parsed,
22
+ query: query,
22
23
  model: Yoomoney::Models::MeRetrieveResponse,
23
24
  options: options
24
25
  )
@@ -104,10 +104,11 @@ module Yoomoney
104
104
  # @see Yoomoney::Models::PaymentListParams
105
105
  def list(params = {})
106
106
  parsed, options = Yoomoney::PaymentListParams.dump_request(params)
107
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
107
108
  @client.request(
108
109
  method: :get,
109
110
  path: "payments",
110
- query: parsed,
111
+ query: query,
111
112
  model: Yoomoney::Models::PaymentListResponse,
112
113
  options: options
113
114
  )
@@ -81,10 +81,11 @@ module Yoomoney
81
81
  # @see Yoomoney::Models::PayoutListParams
82
82
  def list(params = {})
83
83
  parsed, options = Yoomoney::PayoutListParams.dump_request(params)
84
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
84
85
  @client.request(
85
86
  method: :get,
86
87
  path: "payouts",
87
- query: parsed,
88
+ query: query,
88
89
  model: Yoomoney::PayoutsList,
89
90
  options: options
90
91
  )
@@ -104,10 +105,11 @@ module Yoomoney
104
105
  # @see Yoomoney::Models::PayoutSearchParams
105
106
  def search(params = {})
106
107
  parsed, options = Yoomoney::PayoutSearchParams.dump_request(params)
108
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
107
109
  @client.request(
108
110
  method: :get,
109
111
  path: "payouts/search",
110
- query: parsed,
112
+ query: query,
111
113
  model: Yoomoney::PayoutsList,
112
114
  options: options
113
115
  )
@@ -3,25 +3,14 @@
3
3
  module Yoomoney
4
4
  module Resources
5
5
  class PersonalData
6
- # Some parameter documentations has been truncated, see
7
- # {Yoomoney::Models::PersonalDataCreateParams} for more details.
8
- #
9
6
  # Создание персональных данных
10
7
  #
11
- # @overload create(first_name:, last_name:, type:, idempotence_key:, metadata: nil, middle_name: nil, request_options: {})
12
- #
13
- # @param first_name [String] Body param: Имя.
14
- #
15
- # @param last_name [String] Body param: Фамилия.
8
+ # @overload create(body:, idempotence_key:, request_options: {})
16
9
  #
17
- # @param type [Symbol, Yoomoney::Models::PersonalDataType] Body param: Тип персональных данных.
10
+ # @param body [Yoomoney::Models::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest, Yoomoney::Models::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest] Body param
18
11
  #
19
12
  # @param idempotence_key [String] Header param
20
13
  #
21
- # @param metadata [Hash{Symbol=>String}] Body param: Любые дополнительные данные, которые нужны вам для работы (например,
22
- #
23
- # @param middle_name [String] Body param: Отчество.
24
- #
25
14
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}, nil]
26
15
  #
27
16
  # @return [Yoomoney::Models::PersonalDataAPI]
@@ -29,12 +18,11 @@ module Yoomoney
29
18
  # @see Yoomoney::Models::PersonalDataCreateParams
30
19
  def create(params)
31
20
  parsed, options = Yoomoney::PersonalDataCreateParams.dump_request(params)
32
- header_params = {idempotence_key: "idempotence-key"}
33
21
  @client.request(
34
22
  method: :post,
35
23
  path: "personal_data",
36
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
37
- body: parsed.except(*header_params.keys),
24
+ headers: parsed.except(:body).transform_keys(idempotence_key: "idempotence-key"),
25
+ body: parsed[:body],
38
26
  model: Yoomoney::PersonalDataAPI,
39
27
  options: options
40
28
  )
@@ -91,10 +91,11 @@ module Yoomoney
91
91
  # @see Yoomoney::Models::ReceiptListParams
92
92
  def list(params = {})
93
93
  parsed, options = Yoomoney::ReceiptListParams.dump_request(params)
94
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
94
95
  @client.request(
95
96
  method: :get,
96
97
  path: "receipts",
97
- query: parsed,
98
+ query: query,
98
99
  model: Yoomoney::Models::ReceiptListResponse,
99
100
  options: options
100
101
  )
@@ -81,10 +81,11 @@ module Yoomoney
81
81
  # @see Yoomoney::Models::RefundListParams
82
82
  def list(params = {})
83
83
  parsed, options = Yoomoney::RefundListParams.dump_request(params)
84
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
84
85
  @client.request(
85
86
  method: :get,
86
87
  path: "refunds",
87
- query: parsed,
88
+ query: query,
88
89
  model: Yoomoney::Models::RefundListResponse,
89
90
  options: options
90
91
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yoomoney
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.1"
5
5
  end
data/lib/yoomoney.rb CHANGED
@@ -63,12 +63,10 @@ require_relative "yoomoney/models/payment_method_data"
63
63
  require_relative "yoomoney/models/confirmation_data"
64
64
  require_relative "yoomoney/models/payout_destination"
65
65
  require_relative "yoomoney/models/payout_destination_data"
66
+ require_relative "yoomoney/models/personal_data_request"
66
67
  require_relative "yoomoney/models/receipt_item_supplier"
67
- require_relative "yoomoney/models/receipt_data_item"
68
68
  require_relative "yoomoney/models/refund_method"
69
69
  require_relative "yoomoney/models/airline"
70
- require_relative "yoomoney/models/airline_leg"
71
- require_relative "yoomoney/models/airline_passenger"
72
70
  require_relative "yoomoney/models/b2b_sberbank_calculated_vat_data"
73
71
  require_relative "yoomoney/models/b2b_sberbank_mixed_vat_data"
74
72
  require_relative "yoomoney/models/b2b_sberbank_untaxed_vat_data"
@@ -121,7 +119,6 @@ require_relative "yoomoney/models/payouts_list"
121
119
  require_relative "yoomoney/models/payout_status"
122
120
  require_relative "yoomoney/models/personal_data"
123
121
  require_relative "yoomoney/models/personal_data_create_params"
124
- require_relative "yoomoney/models/personal_data_request"
125
122
  require_relative "yoomoney/models/personal_data_retrieve_params"
126
123
  require_relative "yoomoney/models/personal_data_type"
127
124
  require_relative "yoomoney/models/receipt"
@@ -301,6 +301,26 @@ module Yoomoney
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
303
303
  class << self
304
+ # @api private
305
+ sig do
306
+ params(query: Yoomoney::Internal::AnyHash).returns(
307
+ Yoomoney::Internal::AnyHash
308
+ )
309
+ end
310
+ def encode_query_params(query)
311
+ end
312
+
313
+ # @api private
314
+ sig do
315
+ params(
316
+ collection: Yoomoney::Internal::AnyHash,
317
+ key: String,
318
+ element: T.anything
319
+ ).void
320
+ end
321
+ private def write_query_param_element!(collection, key, element)
322
+ end
323
+
304
324
  # @api private
305
325
  sig do
306
326
  params(
@@ -12,17 +12,17 @@ module Yoomoney
12
12
  sig { params(booking_reference: String).void }
13
13
  attr_writer :booking_reference
14
14
 
15
- sig { returns(T.nilable(T::Array[Yoomoney::AirlineLeg])) }
15
+ sig { returns(T.nilable(T::Array[Yoomoney::Airline::Leg])) }
16
16
  attr_reader :legs
17
17
 
18
- sig { params(legs: T::Array[Yoomoney::AirlineLeg::OrHash]).void }
18
+ sig { params(legs: T::Array[Yoomoney::Airline::Leg::OrHash]).void }
19
19
  attr_writer :legs
20
20
 
21
- sig { returns(T.nilable(T::Array[Yoomoney::AirlinePassenger])) }
21
+ sig { returns(T.nilable(T::Array[Yoomoney::Airline::Passenger])) }
22
22
  attr_reader :passengers
23
23
 
24
24
  sig do
25
- params(passengers: T::Array[Yoomoney::AirlinePassenger::OrHash]).void
25
+ params(passengers: T::Array[Yoomoney::Airline::Passenger::OrHash]).void
26
26
  end
27
27
  attr_writer :passengers
28
28
 
@@ -35,8 +35,8 @@ module Yoomoney
35
35
  sig do
36
36
  params(
37
37
  booking_reference: String,
38
- legs: T::Array[Yoomoney::AirlineLeg::OrHash],
39
- passengers: T::Array[Yoomoney::AirlinePassenger::OrHash],
38
+ legs: T::Array[Yoomoney::Airline::Leg::OrHash],
39
+ passengers: T::Array[Yoomoney::Airline::Passenger::OrHash],
40
40
  ticket_number: String
41
41
  ).returns(T.attached_class)
42
42
  end
@@ -52,14 +52,90 @@ module Yoomoney
52
52
  override.returns(
53
53
  {
54
54
  booking_reference: String,
55
- legs: T::Array[Yoomoney::AirlineLeg],
56
- passengers: T::Array[Yoomoney::AirlinePassenger],
55
+ legs: T::Array[Yoomoney::Airline::Leg],
56
+ passengers: T::Array[Yoomoney::Airline::Passenger],
57
57
  ticket_number: String
58
58
  }
59
59
  )
60
60
  end
61
61
  def to_hash
62
62
  end
63
+
64
+ class Leg < Yoomoney::Internal::Type::BaseModel
65
+ OrHash =
66
+ T.type_alias do
67
+ T.any(Yoomoney::Airline::Leg, Yoomoney::Internal::AnyHash)
68
+ end
69
+
70
+ sig { returns(String) }
71
+ attr_accessor :departure_airport
72
+
73
+ sig { returns(String) }
74
+ attr_accessor :departure_date
75
+
76
+ sig { returns(String) }
77
+ attr_accessor :destination_airport
78
+
79
+ sig { returns(T.nilable(String)) }
80
+ attr_reader :carrier_code
81
+
82
+ sig { params(carrier_code: String).void }
83
+ attr_writer :carrier_code
84
+
85
+ sig do
86
+ params(
87
+ departure_airport: String,
88
+ departure_date: String,
89
+ destination_airport: String,
90
+ carrier_code: String
91
+ ).returns(T.attached_class)
92
+ end
93
+ def self.new(
94
+ departure_airport:,
95
+ departure_date:,
96
+ destination_airport:,
97
+ carrier_code: nil
98
+ )
99
+ end
100
+
101
+ sig do
102
+ override.returns(
103
+ {
104
+ departure_airport: String,
105
+ departure_date: String,
106
+ destination_airport: String,
107
+ carrier_code: String
108
+ }
109
+ )
110
+ end
111
+ def to_hash
112
+ end
113
+ end
114
+
115
+ class Passenger < Yoomoney::Internal::Type::BaseModel
116
+ OrHash =
117
+ T.type_alias do
118
+ T.any(Yoomoney::Airline::Passenger, Yoomoney::Internal::AnyHash)
119
+ end
120
+
121
+ sig { returns(String) }
122
+ attr_accessor :first_name
123
+
124
+ sig { returns(String) }
125
+ attr_accessor :last_name
126
+
127
+ sig do
128
+ params(first_name: String, last_name: String).returns(
129
+ T.attached_class
130
+ )
131
+ end
132
+ def self.new(first_name:, last_name:)
133
+ end
134
+
135
+ sig { override.returns({ first_name: String, last_name: String }) }
136
+ def to_hash
137
+ end
138
+ end
63
139
  end
64
140
  end
65
141
  end
@@ -11,15 +11,23 @@ module Yoomoney
11
11
  T.any(Yoomoney::DealRetrieveParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :deal_id
16
+
14
17
  sig do
15
- params(request_options: Yoomoney::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ deal_id: String,
20
+ request_options: Yoomoney::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(deal_id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Yoomoney::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { deal_id: String, request_options: Yoomoney::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end
@@ -11,15 +11,23 @@ module Yoomoney
11
11
  T.any(Yoomoney::InvoiceRetrieveParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :invoice_id
16
+
14
17
  sig do
15
- params(request_options: Yoomoney::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ invoice_id: String,
20
+ request_options: Yoomoney::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(invoice_id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Yoomoney::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { invoice_id: String, request_options: Yoomoney::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end
@@ -11,21 +11,29 @@ module Yoomoney
11
11
  T.any(Yoomoney::PaymentCancelParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :payment_id
16
+
14
17
  sig { returns(String) }
15
18
  attr_accessor :idempotence_key
16
19
 
17
20
  sig do
18
21
  params(
22
+ payment_id: String,
19
23
  idempotence_key: String,
20
24
  request_options: Yoomoney::RequestOptions::OrHash
21
25
  ).returns(T.attached_class)
22
26
  end
23
- def self.new(idempotence_key:, request_options: {})
27
+ def self.new(payment_id:, idempotence_key:, request_options: {})
24
28
  end
25
29
 
26
30
  sig do
27
31
  override.returns(
28
- { idempotence_key: String, request_options: Yoomoney::RequestOptions }
32
+ {
33
+ payment_id: String,
34
+ idempotence_key: String,
35
+ request_options: Yoomoney::RequestOptions
36
+ }
29
37
  )
30
38
  end
31
39
  def to_hash
@@ -11,6 +11,9 @@ module Yoomoney
11
11
  T.any(Yoomoney::PaymentCaptureParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :payment_id
16
+
14
17
  sig { returns(String) }
15
18
  attr_accessor :idempotence_key
16
19
 
@@ -51,6 +54,7 @@ module Yoomoney
51
54
 
52
55
  sig do
53
56
  params(
57
+ payment_id: String,
54
58
  idempotence_key: String,
55
59
  airline: Yoomoney::Airline::OrHash,
56
60
  amount: Yoomoney::MonetaryAmount::OrHash,
@@ -61,6 +65,7 @@ module Yoomoney
61
65
  ).returns(T.attached_class)
62
66
  end
63
67
  def self.new(
68
+ payment_id:,
64
69
  idempotence_key:,
65
70
  # Данные для продажи авиабилетов.
66
71
  airline: nil,
@@ -79,6 +84,7 @@ module Yoomoney
79
84
  sig do
80
85
  override.returns(
81
86
  {
87
+ payment_id: String,
82
88
  idempotence_key: String,
83
89
  airline: Yoomoney::Airline,
84
90
  amount: Yoomoney::MonetaryAmount,