terminal-shop 1.7.0 → 2.0.0

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 (235) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -1
  3. data/lib/terminal-shop/base_client.rb +47 -56
  4. data/lib/terminal-shop/base_model.rb +300 -352
  5. data/lib/terminal-shop/base_page.rb +30 -31
  6. data/lib/terminal-shop/client.rb +2 -3
  7. data/lib/terminal-shop/errors.rb +12 -17
  8. data/lib/terminal-shop/extern.rb +1 -4
  9. data/lib/terminal-shop/models/product.rb +7 -3
  10. data/lib/terminal-shop/models/region.rb +7 -3
  11. data/lib/terminal-shop/models/subscription.rb +7 -3
  12. data/lib/terminal-shop/pooled_net_requester.rb +30 -21
  13. data/lib/terminal-shop/request_options.rb +5 -12
  14. data/lib/terminal-shop/resources/address.rb +0 -5
  15. data/lib/terminal-shop/resources/app.rb +0 -5
  16. data/lib/terminal-shop/resources/card.rb +0 -6
  17. data/lib/terminal-shop/resources/cart.rb +0 -7
  18. data/lib/terminal-shop/resources/email.rb +0 -2
  19. data/lib/terminal-shop/resources/order.rb +0 -4
  20. data/lib/terminal-shop/resources/product.rb +0 -3
  21. data/lib/terminal-shop/resources/profile.rb +0 -3
  22. data/lib/terminal-shop/resources/subscription.rb +0 -5
  23. data/lib/terminal-shop/resources/token.rb +0 -5
  24. data/lib/terminal-shop/resources/view.rb +0 -2
  25. data/lib/terminal-shop/util.rb +59 -77
  26. data/lib/terminal-shop/version.rb +1 -1
  27. data/lib/terminal-shop.rb +16 -0
  28. data/manifest.yaml +1 -0
  29. data/rbi/lib/terminal-shop/base_client.rbi +63 -41
  30. data/rbi/lib/terminal-shop/base_model.rbi +278 -129
  31. data/rbi/lib/terminal-shop/base_page.rbi +1 -4
  32. data/rbi/lib/terminal-shop/client.rbi +29 -30
  33. data/rbi/lib/terminal-shop/errors.rbi +12 -14
  34. data/rbi/lib/terminal-shop/extern.rbi +1 -1
  35. data/rbi/lib/terminal-shop/models/address.rbi +25 -51
  36. data/rbi/lib/terminal-shop/models/address_create_params.rbi +23 -46
  37. data/rbi/lib/terminal-shop/models/address_create_response.rbi +2 -6
  38. data/rbi/lib/terminal-shop/models/address_delete_params.rbi +1 -1
  39. data/rbi/lib/terminal-shop/models/address_delete_response.rbi +1 -6
  40. data/rbi/lib/terminal-shop/models/address_get_params.rbi +1 -1
  41. data/rbi/lib/terminal-shop/models/address_get_response.rbi +8 -6
  42. data/rbi/lib/terminal-shop/models/address_list_params.rbi +1 -1
  43. data/rbi/lib/terminal-shop/models/address_list_response.rbi +5 -6
  44. data/rbi/lib/terminal-shop/models/app.rbi +9 -24
  45. data/rbi/lib/terminal-shop/models/app_create_params.rbi +3 -13
  46. data/rbi/lib/terminal-shop/models/app_create_response.rbi +10 -20
  47. data/rbi/lib/terminal-shop/models/app_delete_params.rbi +1 -1
  48. data/rbi/lib/terminal-shop/models/app_delete_response.rbi +1 -6
  49. data/rbi/lib/terminal-shop/models/app_get_params.rbi +1 -1
  50. data/rbi/lib/terminal-shop/models/app_get_response.rbi +5 -6
  51. data/rbi/lib/terminal-shop/models/app_list_params.rbi +1 -1
  52. data/rbi/lib/terminal-shop/models/app_list_response.rbi +5 -6
  53. data/rbi/lib/terminal-shop/models/card.rbi +22 -36
  54. data/rbi/lib/terminal-shop/models/card_collect_params.rbi +1 -1
  55. data/rbi/lib/terminal-shop/models/card_collect_response.rbi +11 -14
  56. data/rbi/lib/terminal-shop/models/card_create_params.rbi +4 -7
  57. data/rbi/lib/terminal-shop/models/card_create_response.rbi +2 -6
  58. data/rbi/lib/terminal-shop/models/card_delete_params.rbi +1 -1
  59. data/rbi/lib/terminal-shop/models/card_delete_response.rbi +1 -6
  60. data/rbi/lib/terminal-shop/models/card_get_params.rbi +1 -1
  61. data/rbi/lib/terminal-shop/models/card_get_response.rbi +5 -6
  62. data/rbi/lib/terminal-shop/models/card_list_params.rbi +1 -1
  63. data/rbi/lib/terminal-shop/models/card_list_response.rbi +5 -6
  64. data/rbi/lib/terminal-shop/models/cart.rbi +53 -88
  65. data/rbi/lib/terminal-shop/models/cart_clear_params.rbi +1 -1
  66. data/rbi/lib/terminal-shop/models/cart_clear_response.rbi +1 -6
  67. data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +1 -1
  68. data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +5 -6
  69. data/rbi/lib/terminal-shop/models/cart_get_params.rbi +1 -1
  70. data/rbi/lib/terminal-shop/models/cart_get_response.rbi +5 -6
  71. data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +3 -7
  72. data/rbi/lib/terminal-shop/models/cart_set_address_response.rbi +1 -6
  73. data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +3 -7
  74. data/rbi/lib/terminal-shop/models/cart_set_card_response.rbi +1 -6
  75. data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +5 -13
  76. data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +5 -6
  77. data/rbi/lib/terminal-shop/models/email_create_params.rbi +3 -7
  78. data/rbi/lib/terminal-shop/models/email_create_response.rbi +1 -6
  79. data/rbi/lib/terminal-shop/models/order.rbi +80 -139
  80. data/rbi/lib/terminal-shop/models/order_create_params.rbi +7 -19
  81. data/rbi/lib/terminal-shop/models/order_create_response.rbi +2 -6
  82. data/rbi/lib/terminal-shop/models/order_get_params.rbi +1 -1
  83. data/rbi/lib/terminal-shop/models/order_get_response.rbi +5 -6
  84. data/rbi/lib/terminal-shop/models/order_list_params.rbi +1 -1
  85. data/rbi/lib/terminal-shop/models/order_list_response.rbi +5 -6
  86. data/rbi/lib/terminal-shop/models/product.rbi +52 -80
  87. data/rbi/lib/terminal-shop/models/product_get_params.rbi +1 -1
  88. data/rbi/lib/terminal-shop/models/product_get_response.rbi +8 -6
  89. data/rbi/lib/terminal-shop/models/product_list_params.rbi +1 -1
  90. data/rbi/lib/terminal-shop/models/product_list_response.rbi +5 -6
  91. data/rbi/lib/terminal-shop/models/product_variant.rbi +7 -18
  92. data/rbi/lib/terminal-shop/models/profile.rbi +20 -36
  93. data/rbi/lib/terminal-shop/models/profile_me_params.rbi +1 -1
  94. data/rbi/lib/terminal-shop/models/profile_me_response.rbi +8 -6
  95. data/rbi/lib/terminal-shop/models/profile_update_params.rbi +3 -13
  96. data/rbi/lib/terminal-shop/models/profile_update_response.rbi +8 -6
  97. data/rbi/lib/terminal-shop/models/region.rbi +10 -8
  98. data/rbi/lib/terminal-shop/models/subscription.rbi +35 -75
  99. data/rbi/lib/terminal-shop/models/subscription_create_params.rbi +1 -1
  100. data/rbi/lib/terminal-shop/models/subscription_create_response.rbi +1 -6
  101. data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +1 -1
  102. data/rbi/lib/terminal-shop/models/subscription_delete_response.rbi +1 -6
  103. data/rbi/lib/terminal-shop/models/subscription_get_params.rbi +1 -1
  104. data/rbi/lib/terminal-shop/models/subscription_get_response.rbi +8 -6
  105. data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +1 -1
  106. data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +4 -8
  107. data/rbi/lib/terminal-shop/models/token.rbi +8 -18
  108. data/rbi/lib/terminal-shop/models/token_create_params.rbi +1 -1
  109. data/rbi/lib/terminal-shop/models/token_create_response.rbi +11 -20
  110. data/rbi/lib/terminal-shop/models/token_delete_params.rbi +1 -1
  111. data/rbi/lib/terminal-shop/models/token_delete_response.rbi +1 -6
  112. data/rbi/lib/terminal-shop/models/token_get_params.rbi +1 -1
  113. data/rbi/lib/terminal-shop/models/token_get_response.rbi +6 -6
  114. data/rbi/lib/terminal-shop/models/token_list_params.rbi +1 -1
  115. data/rbi/lib/terminal-shop/models/token_list_response.rbi +5 -6
  116. data/rbi/lib/terminal-shop/models/view_init_params.rbi +1 -1
  117. data/rbi/lib/terminal-shop/models/view_init_response.rbi +37 -81
  118. data/rbi/lib/terminal-shop/pooled_net_requester.rbi +24 -6
  119. data/rbi/lib/terminal-shop/request_options.rbi +32 -57
  120. data/rbi/lib/terminal-shop/resources/address.rbi +26 -6
  121. data/rbi/lib/terminal-shop/resources/app.rbi +18 -6
  122. data/rbi/lib/terminal-shop/resources/card.rbi +27 -8
  123. data/rbi/lib/terminal-shop/resources/cart.rbi +29 -9
  124. data/rbi/lib/terminal-shop/resources/email.rbi +7 -2
  125. data/rbi/lib/terminal-shop/resources/order.rbi +20 -5
  126. data/rbi/lib/terminal-shop/resources/product.rbi +9 -3
  127. data/rbi/lib/terminal-shop/resources/profile.rbi +4 -2
  128. data/rbi/lib/terminal-shop/resources/subscription.rbi +26 -6
  129. data/rbi/lib/terminal-shop/resources/token.rbi +18 -6
  130. data/rbi/lib/terminal-shop/resources/view.rbi +3 -1
  131. data/rbi/lib/terminal-shop/util.rbi +78 -20
  132. data/rbi/lib/terminal-shop/version.rbi +1 -1
  133. data/sig/terminal-shop/base_client.rbs +20 -15
  134. data/sig/terminal-shop/base_model.rbs +36 -18
  135. data/sig/terminal-shop/client.rbs +8 -8
  136. data/sig/terminal-shop/errors.rbs +21 -21
  137. data/sig/terminal-shop/models/address.rbs +11 -15
  138. data/sig/terminal-shop/models/address_create_params.rbs +11 -16
  139. data/sig/terminal-shop/models/address_create_response.rbs +1 -6
  140. data/sig/terminal-shop/models/address_delete_params.rbs +1 -6
  141. data/sig/terminal-shop/models/address_delete_response.rbs +1 -6
  142. data/sig/terminal-shop/models/address_get_params.rbs +1 -6
  143. data/sig/terminal-shop/models/address_get_response.rbs +1 -6
  144. data/sig/terminal-shop/models/address_list_params.rbs +1 -6
  145. data/sig/terminal-shop/models/address_list_response.rbs +1 -6
  146. data/sig/terminal-shop/models/app.rbs +6 -5
  147. data/sig/terminal-shop/models/app_create_params.rbs +5 -10
  148. data/sig/terminal-shop/models/app_create_response.rbs +4 -12
  149. data/sig/terminal-shop/models/app_delete_params.rbs +1 -6
  150. data/sig/terminal-shop/models/app_delete_response.rbs +1 -6
  151. data/sig/terminal-shop/models/app_get_params.rbs +1 -5
  152. data/sig/terminal-shop/models/app_get_response.rbs +1 -5
  153. data/sig/terminal-shop/models/app_list_params.rbs +1 -5
  154. data/sig/terminal-shop/models/app_list_response.rbs +1 -6
  155. data/sig/terminal-shop/models/card.rbs +7 -16
  156. data/sig/terminal-shop/models/card_collect_params.rbs +1 -6
  157. data/sig/terminal-shop/models/card_collect_response.rbs +4 -12
  158. data/sig/terminal-shop/models/card_create_params.rbs +4 -6
  159. data/sig/terminal-shop/models/card_create_response.rbs +1 -6
  160. data/sig/terminal-shop/models/card_delete_params.rbs +1 -6
  161. data/sig/terminal-shop/models/card_delete_response.rbs +1 -6
  162. data/sig/terminal-shop/models/card_get_params.rbs +1 -5
  163. data/sig/terminal-shop/models/card_get_response.rbs +1 -6
  164. data/sig/terminal-shop/models/card_list_params.rbs +1 -5
  165. data/sig/terminal-shop/models/card_list_response.rbs +1 -6
  166. data/sig/terminal-shop/models/cart.rbs +20 -34
  167. data/sig/terminal-shop/models/cart_clear_params.rbs +1 -6
  168. data/sig/terminal-shop/models/cart_clear_response.rbs +1 -6
  169. data/sig/terminal-shop/models/cart_convert_params.rbs +1 -6
  170. data/sig/terminal-shop/models/cart_convert_response.rbs +1 -6
  171. data/sig/terminal-shop/models/cart_get_params.rbs +1 -5
  172. data/sig/terminal-shop/models/cart_get_response.rbs +1 -6
  173. data/sig/terminal-shop/models/cart_set_address_params.rbs +4 -9
  174. data/sig/terminal-shop/models/cart_set_address_response.rbs +1 -6
  175. data/sig/terminal-shop/models/cart_set_card_params.rbs +4 -6
  176. data/sig/terminal-shop/models/cart_set_card_response.rbs +1 -6
  177. data/sig/terminal-shop/models/cart_set_item_params.rbs +5 -10
  178. data/sig/terminal-shop/models/cart_set_item_response.rbs +1 -6
  179. data/sig/terminal-shop/models/email_create_params.rbs +4 -6
  180. data/sig/terminal-shop/models/email_create_response.rbs +1 -6
  181. data/sig/terminal-shop/models/order.rbs +31 -50
  182. data/sig/terminal-shop/models/order_create_params.rbs +6 -11
  183. data/sig/terminal-shop/models/order_create_response.rbs +1 -6
  184. data/sig/terminal-shop/models/order_get_params.rbs +1 -5
  185. data/sig/terminal-shop/models/order_get_response.rbs +1 -6
  186. data/sig/terminal-shop/models/order_list_params.rbs +1 -6
  187. data/sig/terminal-shop/models/order_list_response.rbs +1 -6
  188. data/sig/terminal-shop/models/product.rbs +20 -27
  189. data/sig/terminal-shop/models/product_get_params.rbs +1 -6
  190. data/sig/terminal-shop/models/product_get_response.rbs +1 -6
  191. data/sig/terminal-shop/models/product_list_params.rbs +1 -6
  192. data/sig/terminal-shop/models/product_list_response.rbs +1 -6
  193. data/sig/terminal-shop/models/product_variant.rbs +1 -5
  194. data/sig/terminal-shop/models/profile.rbs +8 -17
  195. data/sig/terminal-shop/models/profile_me_params.rbs +1 -6
  196. data/sig/terminal-shop/models/profile_me_response.rbs +1 -6
  197. data/sig/terminal-shop/models/profile_update_params.rbs +5 -10
  198. data/sig/terminal-shop/models/profile_update_response.rbs +1 -6
  199. data/sig/terminal-shop/models/region.rbs +4 -2
  200. data/sig/terminal-shop/models/subscription.rbs +15 -27
  201. data/sig/terminal-shop/models/subscription_create_params.rbs +1 -6
  202. data/sig/terminal-shop/models/subscription_create_response.rbs +1 -6
  203. data/sig/terminal-shop/models/subscription_delete_params.rbs +1 -6
  204. data/sig/terminal-shop/models/subscription_delete_response.rbs +1 -6
  205. data/sig/terminal-shop/models/subscription_get_params.rbs +1 -6
  206. data/sig/terminal-shop/models/subscription_get_response.rbs +1 -6
  207. data/sig/terminal-shop/models/subscription_list_params.rbs +1 -6
  208. data/sig/terminal-shop/models/subscription_list_response.rbs +3 -6
  209. data/sig/terminal-shop/models/token.rbs +1 -5
  210. data/sig/terminal-shop/models/token_create_params.rbs +1 -6
  211. data/sig/terminal-shop/models/token_create_response.rbs +4 -12
  212. data/sig/terminal-shop/models/token_delete_params.rbs +1 -6
  213. data/sig/terminal-shop/models/token_delete_response.rbs +1 -6
  214. data/sig/terminal-shop/models/token_get_params.rbs +1 -5
  215. data/sig/terminal-shop/models/token_get_response.rbs +1 -6
  216. data/sig/terminal-shop/models/token_list_params.rbs +1 -6
  217. data/sig/terminal-shop/models/token_list_response.rbs +1 -6
  218. data/sig/terminal-shop/models/view_init_params.rbs +1 -5
  219. data/sig/terminal-shop/models/view_init_response.rbs +15 -23
  220. data/sig/terminal-shop/pooled_net_requester.rbs +10 -3
  221. data/sig/terminal-shop/request_options.rbs +2 -2
  222. data/sig/terminal-shop/resources/address.rbs +22 -41
  223. data/sig/terminal-shop/resources/app.rbs +16 -34
  224. data/sig/terminal-shop/resources/card.rbs +18 -40
  225. data/sig/terminal-shop/resources/cart.rbs +22 -47
  226. data/sig/terminal-shop/resources/email.rbs +4 -8
  227. data/sig/terminal-shop/resources/order.rbs +13 -26
  228. data/sig/terminal-shop/resources/product.rbs +7 -16
  229. data/sig/terminal-shop/resources/profile.rbs +8 -16
  230. data/sig/terminal-shop/resources/subscription.rbs +21 -43
  231. data/sig/terminal-shop/resources/token.rbs +14 -32
  232. data/sig/terminal-shop/resources/view.rbs +3 -7
  233. data/sig/terminal-shop/util.rbs +9 -9
  234. data/sig/terminal-shop/version.rbs +1 -1
  235. metadata +4 -4
@@ -3,74 +3,53 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProductAPI < TerminalShop::BaseModel
6
+ # Unique object identifier. The format and length of IDs may change over time.
6
7
  sig { returns(String) }
7
- def id
8
- end
9
-
10
- sig { params(_: String).returns(String) }
11
- def id=(_)
12
- end
8
+ attr_accessor :id
13
9
 
10
+ # Description of the product.
14
11
  sig { returns(String) }
15
- def description
16
- end
17
-
18
- sig { params(_: String).returns(String) }
19
- def description=(_)
20
- end
12
+ attr_accessor :description
21
13
 
14
+ # Name of the product.
22
15
  sig { returns(String) }
23
- def name
24
- end
25
-
26
- sig { params(_: String).returns(String) }
27
- def name=(_)
28
- end
16
+ attr_accessor :name
29
17
 
18
+ # List of variants of the product.
30
19
  sig { returns(T::Array[TerminalShop::Models::ProductVariant]) }
31
- def variants
32
- end
33
-
34
- sig do
35
- params(_: T::Array[TerminalShop::Models::ProductVariant])
36
- .returns(T::Array[TerminalShop::Models::ProductVariant])
37
- end
38
- def variants=(_)
39
- end
20
+ attr_accessor :variants
40
21
 
22
+ # Order of the product used when displaying a sorted list of products.
41
23
  sig { returns(T.nilable(Integer)) }
42
- def order
43
- end
24
+ attr_reader :order
44
25
 
45
- sig { params(_: Integer).returns(Integer) }
46
- def order=(_)
47
- end
26
+ sig { params(order: Integer).void }
27
+ attr_writer :order
48
28
 
49
- sig { returns(T.nilable(Symbol)) }
50
- def subscription
51
- end
29
+ # Whether the product must be or can be subscribed to.
30
+ sig { returns(T.nilable(TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol)) }
31
+ attr_reader :subscription
52
32
 
53
- sig { params(_: Symbol).returns(Symbol) }
54
- def subscription=(_)
55
- end
33
+ sig { params(subscription: TerminalShop::Models::ProductAPI::Subscription::OrSymbol).void }
34
+ attr_writer :subscription
56
35
 
36
+ # Tags for the product.
57
37
  sig { returns(T.nilable(TerminalShop::Models::ProductAPI::Tags)) }
58
- def tags
59
- end
38
+ attr_reader :tags
60
39
 
61
- sig { params(_: TerminalShop::Models::ProductAPI::Tags).returns(TerminalShop::Models::ProductAPI::Tags) }
62
- def tags=(_)
63
- end
40
+ sig { params(tags: T.any(TerminalShop::Models::ProductAPI::Tags, TerminalShop::Util::AnyHash)).void }
41
+ attr_writer :tags
64
42
 
43
+ # Product sold in the Terminal shop.
65
44
  sig do
66
45
  params(
67
46
  id: String,
68
47
  description: String,
69
48
  name: String,
70
- variants: T::Array[TerminalShop::Models::ProductVariant],
49
+ variants: T::Array[T.any(TerminalShop::Models::ProductVariant, TerminalShop::Util::AnyHash)],
71
50
  order: Integer,
72
- subscription: Symbol,
73
- tags: TerminalShop::Models::ProductAPI::Tags
51
+ subscription: TerminalShop::Models::ProductAPI::Subscription::OrSymbol,
52
+ tags: T.any(TerminalShop::Models::ProductAPI::Tags, TerminalShop::Util::AnyHash)
74
53
  )
75
54
  .returns(T.attached_class)
76
55
  end
@@ -86,7 +65,7 @@ module TerminalShop
86
65
  name: String,
87
66
  variants: T::Array[TerminalShop::Models::ProductVariant],
88
67
  order: Integer,
89
- subscription: Symbol,
68
+ subscription: TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol,
90
69
  tags: TerminalShop::Models::ProductAPI::Tags
91
70
  }
92
71
  )
@@ -94,60 +73,53 @@ module TerminalShop
94
73
  def to_hash
95
74
  end
96
75
 
97
- class Subscription < TerminalShop::Enum
98
- abstract!
76
+ # Whether the product must be or can be subscribed to.
77
+ module Subscription
78
+ extend TerminalShop::Enum
99
79
 
100
- ALLOWED = :allowed
101
- REQUIRED = :required
80
+ TaggedSymbol = T.type_alias { T.all(Symbol, TerminalShop::Models::ProductAPI::Subscription) }
81
+ OrSymbol = T.type_alias { T.any(Symbol, TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol) }
102
82
 
103
- class << self
104
- sig { override.returns(T::Array[Symbol]) }
105
- def values
106
- end
83
+ ALLOWED = T.let(:allowed, TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol)
84
+ REQUIRED = T.let(:required, TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol)
85
+
86
+ sig { override.returns(T::Array[TerminalShop::Models::ProductAPI::Subscription::TaggedSymbol]) }
87
+ def self.values
107
88
  end
108
89
  end
109
90
 
110
91
  class Tags < TerminalShop::BaseModel
111
92
  sig { returns(T.nilable(String)) }
112
- def app
113
- end
93
+ attr_reader :app
114
94
 
115
- sig { params(_: String).returns(String) }
116
- def app=(_)
117
- end
95
+ sig { params(app: String).void }
96
+ attr_writer :app
118
97
 
119
98
  sig { returns(T.nilable(String)) }
120
- def color
121
- end
99
+ attr_reader :color
122
100
 
123
- sig { params(_: String).returns(String) }
124
- def color=(_)
125
- end
101
+ sig { params(color: String).void }
102
+ attr_writer :color
126
103
 
127
104
  sig { returns(T.nilable(T::Boolean)) }
128
- def featured
129
- end
105
+ attr_reader :featured
130
106
 
131
- sig { params(_: T::Boolean).returns(T::Boolean) }
132
- def featured=(_)
133
- end
107
+ sig { params(featured: T::Boolean).void }
108
+ attr_writer :featured
134
109
 
135
110
  sig { returns(T.nilable(T::Boolean)) }
136
- def market_eu
137
- end
111
+ attr_reader :market_eu
138
112
 
139
- sig { params(_: T::Boolean).returns(T::Boolean) }
140
- def market_eu=(_)
141
- end
113
+ sig { params(market_eu: T::Boolean).void }
114
+ attr_writer :market_eu
142
115
 
143
116
  sig { returns(T.nilable(T::Boolean)) }
144
- def market_na
145
- end
117
+ attr_reader :market_na
146
118
 
147
- sig { params(_: T::Boolean).returns(T::Boolean) }
148
- def market_na=(_)
149
- end
119
+ sig { params(market_na: T::Boolean).void }
120
+ attr_writer :market_na
150
121
 
122
+ # Tags for the product.
151
123
  sig do
152
124
  params(
153
125
  app: String,
@@ -7,7 +7,7 @@ module TerminalShop
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  sig do
10
- params(request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
10
+ params(request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash))
11
11
  .returns(T.attached_class)
12
12
  end
13
13
  def self.new(request_options: {})
@@ -3,15 +3,17 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProductGetResponse < TerminalShop::BaseModel
6
+ # Product sold in the Terminal shop.
6
7
  sig { returns(TerminalShop::Models::ProductAPI) }
7
- def data
8
- end
8
+ attr_reader :data
9
9
 
10
- sig { params(_: TerminalShop::Models::ProductAPI).returns(TerminalShop::Models::ProductAPI) }
11
- def data=(_)
12
- end
10
+ sig { params(data: T.any(TerminalShop::Models::ProductAPI, TerminalShop::Util::AnyHash)).void }
11
+ attr_writer :data
13
12
 
14
- sig { params(data: TerminalShop::Models::ProductAPI).returns(T.attached_class) }
13
+ sig do
14
+ params(data: T.any(TerminalShop::Models::ProductAPI, TerminalShop::Util::AnyHash))
15
+ .returns(T.attached_class)
16
+ end
15
17
  def self.new(data:)
16
18
  end
17
19
 
@@ -7,7 +7,7 @@ module TerminalShop
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  sig do
10
- params(request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
10
+ params(request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash))
11
11
  .returns(T.attached_class)
12
12
  end
13
13
  def self.new(request_options: {})
@@ -3,15 +3,14 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProductListResponse < TerminalShop::BaseModel
6
+ # A list of products.
6
7
  sig { returns(T::Array[TerminalShop::Models::ProductAPI]) }
7
- def data
8
- end
8
+ attr_accessor :data
9
9
 
10
- sig { params(_: T::Array[TerminalShop::Models::ProductAPI]).returns(T::Array[TerminalShop::Models::ProductAPI]) }
11
- def data=(_)
10
+ sig do
11
+ params(data: T::Array[T.any(TerminalShop::Models::ProductAPI, TerminalShop::Util::AnyHash)])
12
+ .returns(T.attached_class)
12
13
  end
13
-
14
- sig { params(data: T::Array[TerminalShop::Models::ProductAPI]).returns(T.attached_class) }
15
14
  def self.new(data:)
16
15
  end
17
16
 
@@ -3,30 +3,19 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProductVariant < TerminalShop::BaseModel
6
+ # Unique object identifier. The format and length of IDs may change over time.
6
7
  sig { returns(String) }
7
- def id
8
- end
9
-
10
- sig { params(_: String).returns(String) }
11
- def id=(_)
12
- end
8
+ attr_accessor :id
13
9
 
10
+ # Name of the product variant.
14
11
  sig { returns(String) }
15
- def name
16
- end
17
-
18
- sig { params(_: String).returns(String) }
19
- def name=(_)
20
- end
12
+ attr_accessor :name
21
13
 
14
+ # Price of the product variant in cents (USD).
22
15
  sig { returns(Integer) }
23
- def price
24
- end
25
-
26
- sig { params(_: Integer).returns(Integer) }
27
- def price=(_)
28
- end
16
+ attr_accessor :price
29
17
 
18
+ # Variant of a product in the Terminal shop.
30
19
  sig { params(id: String, name: String, price: Integer).returns(T.attached_class) }
31
20
  def self.new(id:, name:, price:)
32
21
  end
@@ -3,15 +3,18 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProfileAPI < TerminalShop::BaseModel
6
+ # A Terminal shop user. (We have users, btw.)
6
7
  sig { returns(TerminalShop::Models::ProfileAPI::User) }
7
- def user
8
- end
8
+ attr_reader :user
9
9
 
10
- sig { params(_: TerminalShop::Models::ProfileAPI::User).returns(TerminalShop::Models::ProfileAPI::User) }
11
- def user=(_)
12
- end
10
+ sig { params(user: T.any(TerminalShop::Models::ProfileAPI::User, TerminalShop::Util::AnyHash)).void }
11
+ attr_writer :user
13
12
 
14
- sig { params(user: TerminalShop::Models::ProfileAPI::User).returns(T.attached_class) }
13
+ # A Terminal shop user's profile. (We have users, btw.)
14
+ sig do
15
+ params(user: T.any(TerminalShop::Models::ProfileAPI::User, TerminalShop::Util::AnyHash))
16
+ .returns(T.attached_class)
17
+ end
15
18
  def self.new(user:)
16
19
  end
17
20
 
@@ -20,46 +23,27 @@ module TerminalShop
20
23
  end
21
24
 
22
25
  class User < TerminalShop::BaseModel
26
+ # Unique object identifier. The format and length of IDs may change over time.
23
27
  sig { returns(String) }
24
- def id
25
- end
26
-
27
- sig { params(_: String).returns(String) }
28
- def id=(_)
29
- end
28
+ attr_accessor :id
30
29
 
30
+ # Email address of the user.
31
31
  sig { returns(T.nilable(String)) }
32
- def email
33
- end
34
-
35
- sig { params(_: T.nilable(String)).returns(T.nilable(String)) }
36
- def email=(_)
37
- end
32
+ attr_accessor :email
38
33
 
34
+ # The user's fingerprint, derived from their public SSH key.
39
35
  sig { returns(T.nilable(String)) }
40
- def fingerprint
41
- end
42
-
43
- sig { params(_: T.nilable(String)).returns(T.nilable(String)) }
44
- def fingerprint=(_)
45
- end
36
+ attr_accessor :fingerprint
46
37
 
38
+ # Name of the user.
47
39
  sig { returns(T.nilable(String)) }
48
- def name
49
- end
50
-
51
- sig { params(_: T.nilable(String)).returns(T.nilable(String)) }
52
- def name=(_)
53
- end
40
+ attr_accessor :name
54
41
 
42
+ # Stripe customer ID of the user.
55
43
  sig { returns(String) }
56
- def stripe_customer_id
57
- end
58
-
59
- sig { params(_: String).returns(String) }
60
- def stripe_customer_id=(_)
61
- end
44
+ attr_accessor :stripe_customer_id
62
45
 
46
+ # A Terminal shop user. (We have users, btw.)
63
47
  sig do
64
48
  params(
65
49
  id: String,
@@ -7,7 +7,7 @@ module TerminalShop
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  sig do
10
- params(request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
10
+ params(request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash))
11
11
  .returns(T.attached_class)
12
12
  end
13
13
  def self.new(request_options: {})
@@ -3,15 +3,17 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProfileMeResponse < TerminalShop::BaseModel
6
+ # A Terminal shop user's profile. (We have users, btw.)
6
7
  sig { returns(TerminalShop::Models::ProfileAPI) }
7
- def data
8
- end
8
+ attr_reader :data
9
9
 
10
- sig { params(_: TerminalShop::Models::ProfileAPI).returns(TerminalShop::Models::ProfileAPI) }
11
- def data=(_)
12
- end
10
+ sig { params(data: T.any(TerminalShop::Models::ProfileAPI, TerminalShop::Util::AnyHash)).void }
11
+ attr_writer :data
13
12
 
14
- sig { params(data: TerminalShop::Models::ProfileAPI).returns(T.attached_class) }
13
+ sig do
14
+ params(data: T.any(TerminalShop::Models::ProfileAPI, TerminalShop::Util::AnyHash))
15
+ .returns(T.attached_class)
16
+ end
15
17
  def self.new(data:)
16
18
  end
17
19
 
@@ -7,26 +7,16 @@ module TerminalShop
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  sig { returns(String) }
10
- def email
11
- end
12
-
13
- sig { params(_: String).returns(String) }
14
- def email=(_)
15
- end
10
+ attr_accessor :email
16
11
 
17
12
  sig { returns(String) }
18
- def name
19
- end
20
-
21
- sig { params(_: String).returns(String) }
22
- def name=(_)
23
- end
13
+ attr_accessor :name
24
14
 
25
15
  sig do
26
16
  params(
27
17
  email: String,
28
18
  name: String,
29
- request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything])
19
+ request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash)
30
20
  )
31
21
  .returns(T.attached_class)
32
22
  end
@@ -3,15 +3,17 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class ProfileUpdateResponse < TerminalShop::BaseModel
6
+ # A Terminal shop user's profile. (We have users, btw.)
6
7
  sig { returns(TerminalShop::Models::ProfileAPI) }
7
- def data
8
- end
8
+ attr_reader :data
9
9
 
10
- sig { params(_: TerminalShop::Models::ProfileAPI).returns(TerminalShop::Models::ProfileAPI) }
11
- def data=(_)
12
- end
10
+ sig { params(data: T.any(TerminalShop::Models::ProfileAPI, TerminalShop::Util::AnyHash)).void }
11
+ attr_writer :data
13
12
 
14
- sig { params(data: TerminalShop::Models::ProfileAPI).returns(T.attached_class) }
13
+ sig do
14
+ params(data: T.any(TerminalShop::Models::ProfileAPI, TerminalShop::Util::AnyHash))
15
+ .returns(T.attached_class)
16
+ end
15
17
  def self.new(data:)
16
18
  end
17
19
 
@@ -2,16 +2,18 @@
2
2
 
3
3
  module TerminalShop
4
4
  module Models
5
- class Region < TerminalShop::Enum
6
- abstract!
5
+ # A Terminal shop user's region.
6
+ module Region
7
+ extend TerminalShop::Enum
7
8
 
8
- EU = :eu
9
- NA = :na
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, TerminalShop::Models::Region) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, TerminalShop::Models::Region::TaggedSymbol) }
10
11
 
11
- class << self
12
- sig { override.returns(T::Array[Symbol]) }
13
- def values
14
- end
12
+ EU = T.let(:eu, TerminalShop::Models::Region::TaggedSymbol)
13
+ NA = T.let(:na, TerminalShop::Models::Region::TaggedSymbol)
14
+
15
+ sig { override.returns(T::Array[TerminalShop::Models::Region::TaggedSymbol]) }
16
+ def self.values
15
17
  end
16
18
  end
17
19
  end
@@ -3,54 +3,34 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class SubscriptionAPI < TerminalShop::BaseModel
6
+ # Unique object identifier. The format and length of IDs may change over time.
6
7
  sig { returns(String) }
7
- def id
8
- end
9
-
10
- sig { params(_: String).returns(String) }
11
- def id=(_)
12
- end
8
+ attr_accessor :id
13
9
 
10
+ # ID of the shipping address used for the subscription.
14
11
  sig { returns(String) }
15
- def address_id
16
- end
17
-
18
- sig { params(_: String).returns(String) }
19
- def address_id=(_)
20
- end
12
+ attr_accessor :address_id
21
13
 
14
+ # ID of the card used for the subscription.
22
15
  sig { returns(String) }
23
- def card_id
24
- end
25
-
26
- sig { params(_: String).returns(String) }
27
- def card_id=(_)
28
- end
16
+ attr_accessor :card_id
29
17
 
18
+ # ID of the product variant being subscribed to.
30
19
  sig { returns(String) }
31
- def product_variant_id
32
- end
33
-
34
- sig { params(_: String).returns(String) }
35
- def product_variant_id=(_)
36
- end
20
+ attr_accessor :product_variant_id
37
21
 
22
+ # Quantity of the subscription.
38
23
  sig { returns(Integer) }
39
- def quantity
40
- end
41
-
42
- sig { params(_: Integer).returns(Integer) }
43
- def quantity=(_)
44
- end
24
+ attr_accessor :quantity
45
25
 
26
+ # Next shipment and billing date for the subscription.
46
27
  sig { returns(T.nilable(String)) }
47
- def next_
48
- end
28
+ attr_reader :next_
49
29
 
50
- sig { params(_: String).returns(String) }
51
- def next_=(_)
52
- end
30
+ sig { params(next_: String).void }
31
+ attr_writer :next_
53
32
 
33
+ # Schedule of the subscription.
54
34
  sig do
55
35
  returns(
56
36
  T.nilable(
@@ -61,26 +41,21 @@ module TerminalShop
61
41
  )
62
42
  )
63
43
  end
64
- def schedule
65
- end
44
+ attr_reader :schedule
66
45
 
67
46
  sig do
68
47
  params(
69
- _: T.any(
48
+ schedule: T.any(
70
49
  TerminalShop::Models::SubscriptionAPI::Schedule::Fixed,
50
+ TerminalShop::Util::AnyHash,
71
51
  TerminalShop::Models::SubscriptionAPI::Schedule::Weekly
72
52
  )
73
53
  )
74
- .returns(
75
- T.any(
76
- TerminalShop::Models::SubscriptionAPI::Schedule::Fixed,
77
- TerminalShop::Models::SubscriptionAPI::Schedule::Weekly
78
- )
79
- )
80
- end
81
- def schedule=(_)
54
+ .void
82
55
  end
56
+ attr_writer :schedule
83
57
 
58
+ # Subscription to a Terminal shop product.
84
59
  sig do
85
60
  params(
86
61
  id: String,
@@ -91,6 +66,7 @@ module TerminalShop
91
66
  next_: String,
92
67
  schedule: T.any(
93
68
  TerminalShop::Models::SubscriptionAPI::Schedule::Fixed,
69
+ TerminalShop::Util::AnyHash,
94
70
  TerminalShop::Models::SubscriptionAPI::Schedule::Weekly
95
71
  )
96
72
  )
@@ -119,17 +95,13 @@ module TerminalShop
119
95
  def to_hash
120
96
  end
121
97
 
122
- class Schedule < TerminalShop::Union
123
- abstract!
98
+ # Schedule of the subscription.
99
+ module Schedule
100
+ extend TerminalShop::Union
124
101
 
125
102
  class Fixed < TerminalShop::BaseModel
126
103
  sig { returns(Symbol) }
127
- def type
128
- end
129
-
130
- sig { params(_: Symbol).returns(Symbol) }
131
- def type=(_)
132
- end
104
+ attr_accessor :type
133
105
 
134
106
  sig { params(type: Symbol).returns(T.attached_class) }
135
107
  def self.new(type: :fixed)
@@ -142,20 +114,10 @@ module TerminalShop
142
114
 
143
115
  class Weekly < TerminalShop::BaseModel
144
116
  sig { returns(Integer) }
145
- def interval
146
- end
147
-
148
- sig { params(_: Integer).returns(Integer) }
149
- def interval=(_)
150
- end
117
+ attr_accessor :interval
151
118
 
152
119
  sig { returns(Symbol) }
153
- def type
154
- end
155
-
156
- sig { params(_: Symbol).returns(Symbol) }
157
- def type=(_)
158
- end
120
+ attr_accessor :type
159
121
 
160
122
  sig { params(interval: Integer, type: Symbol).returns(T.attached_class) }
161
123
  def self.new(interval:, type: :weekly)
@@ -166,15 +128,13 @@ module TerminalShop
166
128
  end
167
129
  end
168
130
 
169
- class << self
170
- sig do
171
- override
172
- .returns(
173
- [[NilClass, TerminalShop::Models::SubscriptionAPI::Schedule::Fixed], [NilClass, TerminalShop::Models::SubscriptionAPI::Schedule::Weekly]]
174
- )
175
- end
176
- private def variants
177
- end
131
+ sig do
132
+ override
133
+ .returns(
134
+ [TerminalShop::Models::SubscriptionAPI::Schedule::Fixed, TerminalShop::Models::SubscriptionAPI::Schedule::Weekly]
135
+ )
136
+ end
137
+ def self.variants
178
138
  end
179
139
  end
180
140
  end