checkout-intents 0.0.2

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 (137) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +358 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/checkout_intents/client.rb +100 -0
  7. data/lib/checkout_intents/errors.rb +228 -0
  8. data/lib/checkout_intents/file_part.rb +58 -0
  9. data/lib/checkout_intents/internal/cursor_pagination.rb +125 -0
  10. data/lib/checkout_intents/internal/transport/base_client.rb +577 -0
  11. data/lib/checkout_intents/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/checkout_intents/internal/type/array_of.rb +168 -0
  13. data/lib/checkout_intents/internal/type/base_model.rb +536 -0
  14. data/lib/checkout_intents/internal/type/base_page.rb +55 -0
  15. data/lib/checkout_intents/internal/type/boolean.rb +77 -0
  16. data/lib/checkout_intents/internal/type/converter.rb +327 -0
  17. data/lib/checkout_intents/internal/type/enum.rb +131 -0
  18. data/lib/checkout_intents/internal/type/file_input.rb +111 -0
  19. data/lib/checkout_intents/internal/type/hash_of.rb +188 -0
  20. data/lib/checkout_intents/internal/type/request_parameters.rb +42 -0
  21. data/lib/checkout_intents/internal/type/union.rb +258 -0
  22. data/lib/checkout_intents/internal/type/unknown.rb +81 -0
  23. data/lib/checkout_intents/internal/util.rb +920 -0
  24. data/lib/checkout_intents/internal.rb +20 -0
  25. data/lib/checkout_intents/models/base_checkout_intent.rb +76 -0
  26. data/lib/checkout_intents/models/betas/checkout_session_create_params.rb +148 -0
  27. data/lib/checkout_intents/models/brand_retrieve_params.rb +14 -0
  28. data/lib/checkout_intents/models/brand_retrieve_response.rb +52 -0
  29. data/lib/checkout_intents/models/buyer.rb +69 -0
  30. data/lib/checkout_intents/models/checkout_intent.rb +230 -0
  31. data/lib/checkout_intents/models/checkout_intent_add_payment_params.rb +20 -0
  32. data/lib/checkout_intents/models/checkout_intent_confirm_params.rb +20 -0
  33. data/lib/checkout_intents/models/checkout_intent_create_params.rb +68 -0
  34. data/lib/checkout_intents/models/checkout_intent_list_params.rb +58 -0
  35. data/lib/checkout_intents/models/checkout_intent_purchase_params.rb +74 -0
  36. data/lib/checkout_intents/models/checkout_intent_retrieve_params.rb +14 -0
  37. data/lib/checkout_intents/models/checkout_session.rb +23 -0
  38. data/lib/checkout_intents/models/money.rb +21 -0
  39. data/lib/checkout_intents/models/offer.rb +113 -0
  40. data/lib/checkout_intents/models/payment_method.rb +120 -0
  41. data/lib/checkout_intents/models/variant_selection.rb +33 -0
  42. data/lib/checkout_intents/models.rb +76 -0
  43. data/lib/checkout_intents/request_options.rb +78 -0
  44. data/lib/checkout_intents/resources/betas/checkout_sessions.rb +54 -0
  45. data/lib/checkout_intents/resources/betas.rb +18 -0
  46. data/lib/checkout_intents/resources/brands.rb +37 -0
  47. data/lib/checkout_intents/resources/checkout_intents.rb +173 -0
  48. data/lib/checkout_intents/version.rb +5 -0
  49. data/lib/checkout_intents.rb +77 -0
  50. data/manifest.yaml +17 -0
  51. data/rbi/checkout_intents/client.rbi +74 -0
  52. data/rbi/checkout_intents/errors.rbi +205 -0
  53. data/rbi/checkout_intents/file_part.rbi +37 -0
  54. data/rbi/checkout_intents/internal/cursor_pagination.rbi +74 -0
  55. data/rbi/checkout_intents/internal/transport/base_client.rbi +309 -0
  56. data/rbi/checkout_intents/internal/transport/pooled_net_requester.rbi +84 -0
  57. data/rbi/checkout_intents/internal/type/array_of.rbi +108 -0
  58. data/rbi/checkout_intents/internal/type/base_model.rbi +314 -0
  59. data/rbi/checkout_intents/internal/type/base_page.rbi +43 -0
  60. data/rbi/checkout_intents/internal/type/boolean.rbi +58 -0
  61. data/rbi/checkout_intents/internal/type/converter.rbi +225 -0
  62. data/rbi/checkout_intents/internal/type/enum.rbi +82 -0
  63. data/rbi/checkout_intents/internal/type/file_input.rbi +59 -0
  64. data/rbi/checkout_intents/internal/type/hash_of.rbi +108 -0
  65. data/rbi/checkout_intents/internal/type/request_parameters.rbi +31 -0
  66. data/rbi/checkout_intents/internal/type/union.rbi +134 -0
  67. data/rbi/checkout_intents/internal/type/unknown.rbi +58 -0
  68. data/rbi/checkout_intents/internal/util.rbi +487 -0
  69. data/rbi/checkout_intents/internal.rbi +18 -0
  70. data/rbi/checkout_intents/models/base_checkout_intent.rbi +142 -0
  71. data/rbi/checkout_intents/models/betas/checkout_session_create_params.rbi +281 -0
  72. data/rbi/checkout_intents/models/brand_retrieve_params.rbi +32 -0
  73. data/rbi/checkout_intents/models/brand_retrieve_response.rbi +109 -0
  74. data/rbi/checkout_intents/models/buyer.rbi +92 -0
  75. data/rbi/checkout_intents/models/checkout_intent.rbi +653 -0
  76. data/rbi/checkout_intents/models/checkout_intent_add_payment_params.rbi +59 -0
  77. data/rbi/checkout_intents/models/checkout_intent_confirm_params.rbi +59 -0
  78. data/rbi/checkout_intents/models/checkout_intent_create_params.rbi +141 -0
  79. data/rbi/checkout_intents/models/checkout_intent_list_params.rbi +146 -0
  80. data/rbi/checkout_intents/models/checkout_intent_purchase_params.rbi +165 -0
  81. data/rbi/checkout_intents/models/checkout_intent_retrieve_params.rbi +32 -0
  82. data/rbi/checkout_intents/models/checkout_session.rbi +36 -0
  83. data/rbi/checkout_intents/models/money.rbi +32 -0
  84. data/rbi/checkout_intents/models/offer.rbi +225 -0
  85. data/rbi/checkout_intents/models/payment_method.rbi +292 -0
  86. data/rbi/checkout_intents/models/variant_selection.rbi +55 -0
  87. data/rbi/checkout_intents/models.rbi +40 -0
  88. data/rbi/checkout_intents/request_options.rbi +64 -0
  89. data/rbi/checkout_intents/resources/betas/checkout_sessions.rbi +47 -0
  90. data/rbi/checkout_intents/resources/betas.rbi +15 -0
  91. data/rbi/checkout_intents/resources/brands.rbi +29 -0
  92. data/rbi/checkout_intents/resources/checkout_intents.rbi +165 -0
  93. data/rbi/checkout_intents/version.rbi +5 -0
  94. data/sig/checkout_intents/client.rbs +36 -0
  95. data/sig/checkout_intents/errors.rbs +117 -0
  96. data/sig/checkout_intents/file_part.rbs +21 -0
  97. data/sig/checkout_intents/internal/cursor_pagination.rbs +48 -0
  98. data/sig/checkout_intents/internal/transport/base_client.rbs +133 -0
  99. data/sig/checkout_intents/internal/transport/pooled_net_requester.rbs +48 -0
  100. data/sig/checkout_intents/internal/type/array_of.rbs +48 -0
  101. data/sig/checkout_intents/internal/type/base_model.rbs +104 -0
  102. data/sig/checkout_intents/internal/type/base_page.rbs +24 -0
  103. data/sig/checkout_intents/internal/type/boolean.rbs +26 -0
  104. data/sig/checkout_intents/internal/type/converter.rbs +79 -0
  105. data/sig/checkout_intents/internal/type/enum.rbs +32 -0
  106. data/sig/checkout_intents/internal/type/file_input.rbs +25 -0
  107. data/sig/checkout_intents/internal/type/hash_of.rbs +48 -0
  108. data/sig/checkout_intents/internal/type/request_parameters.rbs +20 -0
  109. data/sig/checkout_intents/internal/type/union.rbs +52 -0
  110. data/sig/checkout_intents/internal/type/unknown.rbs +26 -0
  111. data/sig/checkout_intents/internal/util.rbs +185 -0
  112. data/sig/checkout_intents/internal.rbs +10 -0
  113. data/sig/checkout_intents/models/base_checkout_intent.rbs +88 -0
  114. data/sig/checkout_intents/models/betas/checkout_session_create_params.rbs +172 -0
  115. data/sig/checkout_intents/models/brand_retrieve_params.rbs +15 -0
  116. data/sig/checkout_intents/models/brand_retrieve_response.rbs +43 -0
  117. data/sig/checkout_intents/models/buyer.rbs +67 -0
  118. data/sig/checkout_intents/models/checkout_intent.rbs +324 -0
  119. data/sig/checkout_intents/models/checkout_intent_add_payment_params.rbs +24 -0
  120. data/sig/checkout_intents/models/checkout_intent_confirm_params.rbs +24 -0
  121. data/sig/checkout_intents/models/checkout_intent_create_params.rbs +84 -0
  122. data/sig/checkout_intents/models/checkout_intent_list_params.rbs +77 -0
  123. data/sig/checkout_intents/models/checkout_intent_purchase_params.rbs +89 -0
  124. data/sig/checkout_intents/models/checkout_intent_retrieve_params.rbs +15 -0
  125. data/sig/checkout_intents/models/checkout_session.rbs +13 -0
  126. data/sig/checkout_intents/models/money.rbs +15 -0
  127. data/sig/checkout_intents/models/offer.rbs +135 -0
  128. data/sig/checkout_intents/models/payment_method.rbs +127 -0
  129. data/sig/checkout_intents/models/variant_selection.rbs +30 -0
  130. data/sig/checkout_intents/models.rbs +33 -0
  131. data/sig/checkout_intents/request_options.rbs +36 -0
  132. data/sig/checkout_intents/resources/betas/checkout_sessions.rbs +19 -0
  133. data/sig/checkout_intents/resources/betas.rbs +9 -0
  134. data/sig/checkout_intents/resources/brands.rbs +12 -0
  135. data/sig/checkout_intents/resources/checkout_intents.rbs +54 -0
  136. data/sig/checkout_intents/version.rbs +3 -0
  137. metadata +194 -0
@@ -0,0 +1,281 @@
1
+ # typed: strong
2
+
3
+ module CheckoutIntents
4
+ module Models
5
+ module Betas
6
+ class CheckoutSessionCreateParams < CheckoutIntents::Internal::Type::BaseModel
7
+ extend CheckoutIntents::Internal::Type::RequestParameters::Converter
8
+ include CheckoutIntents::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ CheckoutIntents::Betas::CheckoutSessionCreateParams,
14
+ CheckoutIntents::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :product_url
20
+
21
+ sig { returns(Float) }
22
+ attr_accessor :quantity
23
+
24
+ # Optional buyer information, used to pre-fill the checkout form with the buyer's
25
+ # information.
26
+ sig do
27
+ returns(
28
+ T.nilable(
29
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Buyer
30
+ )
31
+ )
32
+ end
33
+ attr_reader :buyer
34
+
35
+ sig do
36
+ params(
37
+ buyer:
38
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Buyer::OrHash
39
+ ).void
40
+ end
41
+ attr_writer :buyer
42
+
43
+ sig do
44
+ returns(
45
+ T.nilable(
46
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Constraints
47
+ )
48
+ )
49
+ end
50
+ attr_reader :constraints
51
+
52
+ sig do
53
+ params(
54
+ constraints:
55
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Constraints::OrHash
56
+ ).void
57
+ end
58
+ attr_writer :constraints
59
+
60
+ sig { returns(T.nilable(T::Array[String])) }
61
+ attr_reader :promo_codes
62
+
63
+ sig { params(promo_codes: T::Array[String]).void }
64
+ attr_writer :promo_codes
65
+
66
+ sig { returns(T.nilable(T::Array[CheckoutIntents::VariantSelection])) }
67
+ attr_reader :variant_selections
68
+
69
+ sig do
70
+ params(
71
+ variant_selections:
72
+ T::Array[CheckoutIntents::VariantSelection::OrHash]
73
+ ).void
74
+ end
75
+ attr_writer :variant_selections
76
+
77
+ sig do
78
+ params(
79
+ product_url: String,
80
+ quantity: Float,
81
+ buyer:
82
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Buyer::OrHash,
83
+ constraints:
84
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Constraints::OrHash,
85
+ promo_codes: T::Array[String],
86
+ variant_selections:
87
+ T::Array[CheckoutIntents::VariantSelection::OrHash],
88
+ request_options: CheckoutIntents::RequestOptions::OrHash
89
+ ).returns(T.attached_class)
90
+ end
91
+ def self.new(
92
+ product_url:,
93
+ quantity:,
94
+ # Optional buyer information, used to pre-fill the checkout form with the buyer's
95
+ # information.
96
+ buyer: nil,
97
+ constraints: nil,
98
+ promo_codes: nil,
99
+ variant_selections: nil,
100
+ request_options: {}
101
+ )
102
+ end
103
+
104
+ sig do
105
+ override.returns(
106
+ {
107
+ product_url: String,
108
+ quantity: Float,
109
+ buyer: CheckoutIntents::Betas::CheckoutSessionCreateParams::Buyer,
110
+ constraints:
111
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Constraints,
112
+ promo_codes: T::Array[String],
113
+ variant_selections: T::Array[CheckoutIntents::VariantSelection],
114
+ request_options: CheckoutIntents::RequestOptions
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+
121
+ class Buyer < CheckoutIntents::Internal::Type::BaseModel
122
+ OrHash =
123
+ T.type_alias do
124
+ T.any(
125
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Buyer,
126
+ CheckoutIntents::Internal::AnyHash
127
+ )
128
+ end
129
+
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :address1
132
+
133
+ sig { params(address1: String).void }
134
+ attr_writer :address1
135
+
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :address2
138
+
139
+ sig { params(address2: String).void }
140
+ attr_writer :address2
141
+
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :city
144
+
145
+ sig { params(city: String).void }
146
+ attr_writer :city
147
+
148
+ sig { returns(T.nilable(String)) }
149
+ attr_reader :country
150
+
151
+ sig { params(country: String).void }
152
+ attr_writer :country
153
+
154
+ sig { returns(T.nilable(String)) }
155
+ attr_reader :email
156
+
157
+ sig { params(email: String).void }
158
+ attr_writer :email
159
+
160
+ sig { returns(T.nilable(String)) }
161
+ attr_reader :first_name
162
+
163
+ sig { params(first_name: String).void }
164
+ attr_writer :first_name
165
+
166
+ sig { returns(T.nilable(String)) }
167
+ attr_reader :last_name
168
+
169
+ sig { params(last_name: String).void }
170
+ attr_writer :last_name
171
+
172
+ sig { returns(T.nilable(String)) }
173
+ attr_reader :phone
174
+
175
+ sig { params(phone: String).void }
176
+ attr_writer :phone
177
+
178
+ sig { returns(T.nilable(String)) }
179
+ attr_reader :postal_code
180
+
181
+ sig { params(postal_code: String).void }
182
+ attr_writer :postal_code
183
+
184
+ sig { returns(T.nilable(String)) }
185
+ attr_reader :province
186
+
187
+ sig { params(province: String).void }
188
+ attr_writer :province
189
+
190
+ # Optional buyer information, used to pre-fill the checkout form with the buyer's
191
+ # information.
192
+ sig do
193
+ params(
194
+ address1: String,
195
+ address2: String,
196
+ city: String,
197
+ country: String,
198
+ email: String,
199
+ first_name: String,
200
+ last_name: String,
201
+ phone: String,
202
+ postal_code: String,
203
+ province: String
204
+ ).returns(T.attached_class)
205
+ end
206
+ def self.new(
207
+ address1: nil,
208
+ address2: nil,
209
+ city: nil,
210
+ country: nil,
211
+ email: nil,
212
+ first_name: nil,
213
+ last_name: nil,
214
+ phone: nil,
215
+ postal_code: nil,
216
+ province: nil
217
+ )
218
+ end
219
+
220
+ sig do
221
+ override.returns(
222
+ {
223
+ address1: String,
224
+ address2: String,
225
+ city: String,
226
+ country: String,
227
+ email: String,
228
+ first_name: String,
229
+ last_name: String,
230
+ phone: String,
231
+ postal_code: String,
232
+ province: String
233
+ }
234
+ )
235
+ end
236
+ def to_hash
237
+ end
238
+ end
239
+
240
+ class Constraints < CheckoutIntents::Internal::Type::BaseModel
241
+ OrHash =
242
+ T.type_alias do
243
+ T.any(
244
+ CheckoutIntents::Betas::CheckoutSessionCreateParams::Constraints,
245
+ CheckoutIntents::Internal::AnyHash
246
+ )
247
+ end
248
+
249
+ sig { returns(T.nilable(Integer)) }
250
+ attr_reader :max_shipping_price
251
+
252
+ sig { params(max_shipping_price: Integer).void }
253
+ attr_writer :max_shipping_price
254
+
255
+ sig { returns(T.nilable(Integer)) }
256
+ attr_reader :max_total_price
257
+
258
+ sig { params(max_total_price: Integer).void }
259
+ attr_writer :max_total_price
260
+
261
+ sig do
262
+ params(
263
+ max_shipping_price: Integer,
264
+ max_total_price: Integer
265
+ ).returns(T.attached_class)
266
+ end
267
+ def self.new(max_shipping_price: nil, max_total_price: nil)
268
+ end
269
+
270
+ sig do
271
+ override.returns(
272
+ { max_shipping_price: Integer, max_total_price: Integer }
273
+ )
274
+ end
275
+ def to_hash
276
+ end
277
+ end
278
+ end
279
+ end
280
+ end
281
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module CheckoutIntents
4
+ module Models
5
+ class BrandRetrieveParams < CheckoutIntents::Internal::Type::BaseModel
6
+ extend CheckoutIntents::Internal::Type::RequestParameters::Converter
7
+ include CheckoutIntents::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ CheckoutIntents::BrandRetrieveParams,
13
+ CheckoutIntents::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig do
18
+ params(
19
+ request_options: CheckoutIntents::RequestOptions::OrHash
20
+ ).returns(T.attached_class)
21
+ end
22
+ def self.new(request_options: {})
23
+ end
24
+
25
+ sig do
26
+ override.returns({ request_options: CheckoutIntents::RequestOptions })
27
+ end
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module CheckoutIntents
4
+ module Models
5
+ class BrandRetrieveResponse < CheckoutIntents::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ CheckoutIntents::Models::BrandRetrieveResponse,
10
+ CheckoutIntents::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # A unique identifier for the brand.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # Indicates what ecommerce platform the brand uses.
19
+ sig do
20
+ returns(
21
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
22
+ )
23
+ end
24
+ attr_accessor :marketplace
25
+
26
+ # If `false`, then products from this brand cannot be purchased through the Sell
27
+ # Anything API.
28
+ sig { returns(T::Boolean) }
29
+ attr_accessor :supported
30
+
31
+ sig do
32
+ params(
33
+ id: String,
34
+ marketplace:
35
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::OrSymbol,
36
+ supported: T::Boolean
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(
40
+ # A unique identifier for the brand.
41
+ id:,
42
+ # Indicates what ecommerce platform the brand uses.
43
+ marketplace:,
44
+ # If `false`, then products from this brand cannot be purchased through the Sell
45
+ # Anything API.
46
+ supported:
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ id: String,
54
+ marketplace:
55
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol,
56
+ supported: T::Boolean
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+
63
+ # Indicates what ecommerce platform the brand uses.
64
+ module Marketplace
65
+ extend CheckoutIntents::Internal::Type::Enum
66
+
67
+ TaggedSymbol =
68
+ T.type_alias do
69
+ T.all(
70
+ Symbol,
71
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace
72
+ )
73
+ end
74
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
75
+
76
+ AMAZON =
77
+ T.let(
78
+ :AMAZON,
79
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
80
+ )
81
+ SHOPIFY =
82
+ T.let(
83
+ :SHOPIFY,
84
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
85
+ )
86
+ BESTBUY =
87
+ T.let(
88
+ :BESTBUY,
89
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
90
+ )
91
+ UNKNOWN =
92
+ T.let(
93
+ :UNKNOWN,
94
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
95
+ )
96
+
97
+ sig do
98
+ override.returns(
99
+ T::Array[
100
+ CheckoutIntents::Models::BrandRetrieveResponse::Marketplace::TaggedSymbol
101
+ ]
102
+ )
103
+ end
104
+ def self.values
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,92 @@
1
+ # typed: strong
2
+
3
+ module CheckoutIntents
4
+ module Models
5
+ class Buyer < CheckoutIntents::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(CheckoutIntents::Buyer, CheckoutIntents::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :address1
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :city
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :country
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :email
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :first_name
25
+
26
+ sig { returns(String) }
27
+ attr_accessor :last_name
28
+
29
+ sig { returns(String) }
30
+ attr_accessor :phone
31
+
32
+ sig { returns(String) }
33
+ attr_accessor :postal_code
34
+
35
+ sig { returns(String) }
36
+ attr_accessor :province
37
+
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :address2
40
+
41
+ sig { params(address2: String).void }
42
+ attr_writer :address2
43
+
44
+ sig do
45
+ params(
46
+ address1: String,
47
+ city: String,
48
+ country: String,
49
+ email: String,
50
+ first_name: String,
51
+ last_name: String,
52
+ phone: String,
53
+ postal_code: String,
54
+ province: String,
55
+ address2: String
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ address1:,
60
+ city:,
61
+ country:,
62
+ email:,
63
+ first_name:,
64
+ last_name:,
65
+ phone:,
66
+ postal_code:,
67
+ province:,
68
+ address2: nil
69
+ )
70
+ end
71
+
72
+ sig do
73
+ override.returns(
74
+ {
75
+ address1: String,
76
+ city: String,
77
+ country: String,
78
+ email: String,
79
+ first_name: String,
80
+ last_name: String,
81
+ phone: String,
82
+ postal_code: String,
83
+ province: String,
84
+ address2: String
85
+ }
86
+ )
87
+ end
88
+ def to_hash
89
+ end
90
+ end
91
+ end
92
+ end