whop_sdk 0.0.2 → 0.0.3

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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/client.rb +20 -0
  5. data/lib/whop_sdk/internal/transport/pooled_net_requester.rb +30 -24
  6. data/lib/whop_sdk/models/assessment_question_types.rb +18 -0
  7. data/lib/whop_sdk/models/billing_reasons.rb +20 -0
  8. data/lib/whop_sdk/models/card_brands.rb +30 -0
  9. data/lib/whop_sdk/models/checkout_configuration.rb +10 -7
  10. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +140 -3
  11. data/lib/whop_sdk/models/checkout_configuration_list_response.rb +10 -7
  12. data/lib/whop_sdk/models/course.rb +230 -0
  13. data/lib/whop_sdk/models/course_chapter.rb +72 -0
  14. data/lib/whop_sdk/models/course_chapter_create_params.rb +30 -0
  15. data/lib/whop_sdk/models/course_chapter_delete_params.rb +14 -0
  16. data/lib/whop_sdk/models/course_chapter_delete_response.rb +8 -0
  17. data/lib/whop_sdk/models/course_chapter_list_params.rb +54 -0
  18. data/lib/whop_sdk/models/course_chapter_list_response.rb +35 -0
  19. data/lib/whop_sdk/models/course_chapter_retrieve_params.rb +14 -0
  20. data/lib/whop_sdk/models/course_chapter_update_params.rb +22 -0
  21. data/lib/whop_sdk/models/course_create_params.rb +82 -0
  22. data/lib/whop_sdk/models/course_delete_params.rb +14 -0
  23. data/lib/whop_sdk/models/course_delete_response.rb +8 -0
  24. data/lib/whop_sdk/models/course_lesson_create_params.rb +54 -0
  25. data/lib/whop_sdk/models/course_lesson_delete_params.rb +14 -0
  26. data/lib/whop_sdk/models/course_lesson_delete_response.rb +8 -0
  27. data/lib/whop_sdk/models/course_lesson_list_params.rb +62 -0
  28. data/lib/whop_sdk/models/course_lesson_list_response.rb +71 -0
  29. data/lib/whop_sdk/models/course_lesson_retrieve_params.rb +14 -0
  30. data/lib/whop_sdk/models/course_lesson_update_params.rb +278 -0
  31. data/lib/whop_sdk/models/course_list_params.rb +62 -0
  32. data/lib/whop_sdk/models/course_list_response.rb +148 -0
  33. data/lib/whop_sdk/models/course_retrieve_params.rb +14 -0
  34. data/lib/whop_sdk/models/course_update_params.rb +197 -0
  35. data/lib/whop_sdk/models/experience_duplicate_params.rb +22 -0
  36. data/lib/whop_sdk/models/forum_post.rb +17 -1
  37. data/lib/whop_sdk/models/forum_post_list_response.rb +17 -1
  38. data/lib/whop_sdk/models/forum_post_update_params.rb +80 -0
  39. data/lib/whop_sdk/models/invoice.rb +6 -2
  40. data/lib/whop_sdk/models/invoice_list_item.rb +6 -2
  41. data/lib/whop_sdk/models/languages.rb +36 -0
  42. data/lib/whop_sdk/models/ledger_account_retrieve_response.rb +9 -0
  43. data/lib/whop_sdk/models/lesson.rb +365 -0
  44. data/lib/whop_sdk/models/lesson_types.rb +20 -0
  45. data/lib/whop_sdk/models/lesson_visibilities.rb +17 -0
  46. data/lib/whop_sdk/models/member_list_params.rb +9 -1
  47. data/lib/whop_sdk/models/membership.rb +31 -1
  48. data/lib/whop_sdk/models/membership_list_params.rb +16 -8
  49. data/lib/whop_sdk/models/membership_list_response.rb +31 -1
  50. data/lib/whop_sdk/models/message_update_params.rb +68 -0
  51. data/lib/whop_sdk/models/payment.rb +24 -21
  52. data/lib/whop_sdk/models/payment_list_params.rb +3 -18
  53. data/lib/whop_sdk/models/payment_list_response.rb +24 -21
  54. data/lib/whop_sdk/models/payment_method_types.rb +98 -0
  55. data/lib/whop_sdk/models/plan.rb +25 -1
  56. data/lib/whop_sdk/models/plan_create_params.rb +37 -3
  57. data/lib/whop_sdk/models/plan_list_response.rb +25 -1
  58. data/lib/whop_sdk/models/plan_update_params.rb +35 -1
  59. data/lib/whop_sdk/models/product.rb +11 -1
  60. data/lib/whop_sdk/models/product_create_params.rb +1 -45
  61. data/lib/whop_sdk/models/product_list_item.rb +14 -1
  62. data/lib/whop_sdk/models/product_update_params.rb +30 -1
  63. data/lib/whop_sdk/models/promo_code.rb +211 -0
  64. data/lib/whop_sdk/models/promo_code_create_params.rb +140 -0
  65. data/lib/whop_sdk/models/promo_code_delete_params.rb +14 -0
  66. data/lib/whop_sdk/models/promo_code_delete_response.rb +8 -0
  67. data/lib/whop_sdk/models/promo_code_list_params.rb +78 -0
  68. data/lib/whop_sdk/models/promo_code_list_response.rb +181 -0
  69. data/lib/whop_sdk/models/promo_code_retrieve_params.rb +14 -0
  70. data/lib/whop_sdk/models/promo_code_status.rb +17 -0
  71. data/lib/whop_sdk/models/promo_duration.rb +17 -0
  72. data/lib/whop_sdk/models/review_list_params.rb +70 -0
  73. data/lib/whop_sdk/models/review_list_response.rb +183 -0
  74. data/lib/whop_sdk/models/review_retrieve_params.rb +14 -0
  75. data/lib/whop_sdk/models/review_retrieve_response.rb +251 -0
  76. data/lib/whop_sdk/models/review_status.rb +17 -0
  77. data/lib/whop_sdk/models.rb +76 -0
  78. data/lib/whop_sdk/resources/checkout_configurations.rb +2 -0
  79. data/lib/whop_sdk/resources/course_chapters.rb +151 -0
  80. data/lib/whop_sdk/resources/course_lessons.rb +178 -0
  81. data/lib/whop_sdk/resources/courses.rb +178 -0
  82. data/lib/whop_sdk/resources/experiences.rb +33 -0
  83. data/lib/whop_sdk/resources/forum_posts.rb +33 -0
  84. data/lib/whop_sdk/resources/members.rb +3 -1
  85. data/lib/whop_sdk/resources/memberships.rb +6 -4
  86. data/lib/whop_sdk/resources/messages.rb +28 -0
  87. data/lib/whop_sdk/resources/payments.rb +1 -1
  88. data/lib/whop_sdk/resources/plans.rb +19 -3
  89. data/lib/whop_sdk/resources/products.rb +4 -6
  90. data/lib/whop_sdk/resources/promo_codes.rb +161 -0
  91. data/lib/whop_sdk/resources/reviews.rb +68 -0
  92. data/lib/whop_sdk/version.rb +1 -1
  93. data/lib/whop_sdk.rb +53 -0
  94. data/rbi/whop_sdk/client.rbi +15 -0
  95. data/rbi/whop_sdk/models/assessment_question_types.rbi +31 -0
  96. data/rbi/whop_sdk/models/billing_reasons.rbi +27 -0
  97. data/rbi/whop_sdk/models/card_brands.rbi +35 -0
  98. data/rbi/whop_sdk/models/checkout_configuration.rbi +4 -2
  99. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +183 -2
  100. data/rbi/whop_sdk/models/checkout_configuration_list_response.rbi +4 -2
  101. data/rbi/whop_sdk/models/course.rbi +313 -0
  102. data/rbi/whop_sdk/models/course_chapter.rbi +101 -0
  103. data/rbi/whop_sdk/models/course_chapter_create_params.rbi +51 -0
  104. data/rbi/whop_sdk/models/course_chapter_delete_params.rbi +27 -0
  105. data/rbi/whop_sdk/models/course_chapter_delete_response.rbi +8 -0
  106. data/rbi/whop_sdk/models/course_chapter_list_params.rbi +75 -0
  107. data/rbi/whop_sdk/models/course_chapter_list_response.rbi +47 -0
  108. data/rbi/whop_sdk/models/course_chapter_retrieve_params.rbi +30 -0
  109. data/rbi/whop_sdk/models/course_chapter_update_params.rbi +40 -0
  110. data/rbi/whop_sdk/models/course_create_params.rbi +131 -0
  111. data/rbi/whop_sdk/models/course_delete_params.rbi +27 -0
  112. data/rbi/whop_sdk/models/course_delete_response.rbi +7 -0
  113. data/rbi/whop_sdk/models/course_lesson_create_params.rbi +75 -0
  114. data/rbi/whop_sdk/models/course_lesson_delete_params.rbi +27 -0
  115. data/rbi/whop_sdk/models/course_lesson_delete_response.rbi +8 -0
  116. data/rbi/whop_sdk/models/course_lesson_list_params.rbi +83 -0
  117. data/rbi/whop_sdk/models/course_lesson_list_response.rbi +91 -0
  118. data/rbi/whop_sdk/models/course_lesson_retrieve_params.rbi +27 -0
  119. data/rbi/whop_sdk/models/course_lesson_update_params.rbi +465 -0
  120. data/rbi/whop_sdk/models/course_list_params.rbi +83 -0
  121. data/rbi/whop_sdk/models/course_list_response.rbi +198 -0
  122. data/rbi/whop_sdk/models/course_retrieve_params.rbi +27 -0
  123. data/rbi/whop_sdk/models/course_update_params.rbi +293 -0
  124. data/rbi/whop_sdk/models/experience_duplicate_params.rbi +40 -0
  125. data/rbi/whop_sdk/models/forum_post.rbi +16 -0
  126. data/rbi/whop_sdk/models/forum_post_list_response.rbi +16 -0
  127. data/rbi/whop_sdk/models/forum_post_update_params.rbi +124 -0
  128. data/rbi/whop_sdk/models/invoice.rbi +4 -2
  129. data/rbi/whop_sdk/models/invoice_list_item.rbi +4 -2
  130. data/rbi/whop_sdk/models/languages.rbi +40 -0
  131. data/rbi/whop_sdk/models/ledger_account_retrieve_response.rbi +45 -0
  132. data/rbi/whop_sdk/models/lesson.rbi +517 -0
  133. data/rbi/whop_sdk/models/lesson_types.rbi +25 -0
  134. data/rbi/whop_sdk/models/lesson_visibilities.rbi +23 -0
  135. data/rbi/whop_sdk/models/member_list_params.rbi +8 -0
  136. data/rbi/whop_sdk/models/membership.rbi +40 -0
  137. data/rbi/whop_sdk/models/membership_list_params.rbi +16 -8
  138. data/rbi/whop_sdk/models/membership_list_response.rbi +47 -0
  139. data/rbi/whop_sdk/models/message_update_params.rbi +114 -0
  140. data/rbi/whop_sdk/models/payment.rbi +32 -25
  141. data/rbi/whop_sdk/models/payment_list_params.rbi +3 -63
  142. data/rbi/whop_sdk/models/payment_list_response.rbi +32 -25
  143. data/rbi/whop_sdk/models/payment_method_types.rbi +116 -0
  144. data/rbi/whop_sdk/models/plan.rbi +24 -0
  145. data/rbi/whop_sdk/models/plan_create_params.rbi +38 -2
  146. data/rbi/whop_sdk/models/plan_list_response.rbi +24 -0
  147. data/rbi/whop_sdk/models/plan_update_params.rbi +36 -0
  148. data/rbi/whop_sdk/models/product.rbi +12 -0
  149. data/rbi/whop_sdk/models/product_create_params.rbi +0 -74
  150. data/rbi/whop_sdk/models/product_list_item.rbi +12 -0
  151. data/rbi/whop_sdk/models/product_update_params.rbi +59 -0
  152. data/rbi/whop_sdk/models/promo_code.rbi +248 -0
  153. data/rbi/whop_sdk/models/promo_code_create_params.rbi +161 -0
  154. data/rbi/whop_sdk/models/promo_code_delete_params.rbi +27 -0
  155. data/rbi/whop_sdk/models/promo_code_delete_response.rbi +8 -0
  156. data/rbi/whop_sdk/models/promo_code_list_params.rbi +99 -0
  157. data/rbi/whop_sdk/models/promo_code_list_response.rbi +222 -0
  158. data/rbi/whop_sdk/models/promo_code_retrieve_params.rbi +27 -0
  159. data/rbi/whop_sdk/models/promo_code_status.rbi +21 -0
  160. data/rbi/whop_sdk/models/promo_duration.rbi +21 -0
  161. data/rbi/whop_sdk/models/review_list_params.rbi +91 -0
  162. data/rbi/whop_sdk/models/review_list_response.rbi +243 -0
  163. data/rbi/whop_sdk/models/review_retrieve_params.rbi +27 -0
  164. data/rbi/whop_sdk/models/review_retrieve_response.rbi +354 -0
  165. data/rbi/whop_sdk/models/review_status.rbi +21 -0
  166. data/rbi/whop_sdk/models.rbi +76 -0
  167. data/rbi/whop_sdk/resources/checkout_configurations.rbi +2 -0
  168. data/rbi/whop_sdk/resources/course_chapters.rbi +115 -0
  169. data/rbi/whop_sdk/resources/course_lessons.rbi +163 -0
  170. data/rbi/whop_sdk/resources/courses.rbi +152 -0
  171. data/rbi/whop_sdk/resources/experiences.rbi +25 -0
  172. data/rbi/whop_sdk/resources/forum_posts.rbi +29 -0
  173. data/rbi/whop_sdk/resources/members.rbi +3 -0
  174. data/rbi/whop_sdk/resources/memberships.rbi +6 -3
  175. data/rbi/whop_sdk/resources/messages.rbi +25 -0
  176. data/rbi/whop_sdk/resources/payments.rbi +1 -3
  177. data/rbi/whop_sdk/resources/plans.rbi +29 -1
  178. data/rbi/whop_sdk/resources/products.rbi +4 -7
  179. data/rbi/whop_sdk/resources/promo_codes.rbi +147 -0
  180. data/rbi/whop_sdk/resources/reviews.rbi +56 -0
  181. data/sig/whop_sdk/client.rbs +10 -0
  182. data/sig/whop_sdk/models/assessment_question_types.rbs +17 -0
  183. data/sig/whop_sdk/models/billing_reasons.rbs +24 -0
  184. data/sig/whop_sdk/models/card_brands.rbs +44 -0
  185. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +87 -0
  186. data/sig/whop_sdk/models/course.rbs +171 -0
  187. data/sig/whop_sdk/models/course_chapter.rbs +49 -0
  188. data/sig/whop_sdk/models/course_chapter_create_params.rbs +28 -0
  189. data/sig/whop_sdk/models/course_chapter_delete_params.rbs +15 -0
  190. data/sig/whop_sdk/models/course_chapter_delete_response.rbs +5 -0
  191. data/sig/whop_sdk/models/course_chapter_list_params.rbs +46 -0
  192. data/sig/whop_sdk/models/course_chapter_list_response.rbs +18 -0
  193. data/sig/whop_sdk/models/course_chapter_retrieve_params.rbs +15 -0
  194. data/sig/whop_sdk/models/course_chapter_update_params.rbs +23 -0
  195. data/sig/whop_sdk/models/course_create_params.rbs +58 -0
  196. data/sig/whop_sdk/models/course_delete_params.rbs +15 -0
  197. data/sig/whop_sdk/models/course_delete_response.rbs +5 -0
  198. data/sig/whop_sdk/models/course_lesson_create_params.rbs +46 -0
  199. data/sig/whop_sdk/models/course_lesson_delete_params.rbs +15 -0
  200. data/sig/whop_sdk/models/course_lesson_delete_response.rbs +5 -0
  201. data/sig/whop_sdk/models/course_lesson_list_params.rbs +51 -0
  202. data/sig/whop_sdk/models/course_lesson_list_response.rbs +50 -0
  203. data/sig/whop_sdk/models/course_lesson_retrieve_params.rbs +15 -0
  204. data/sig/whop_sdk/models/course_lesson_update_params.rbs +162 -0
  205. data/sig/whop_sdk/models/course_list_params.rbs +51 -0
  206. data/sig/whop_sdk/models/course_list_response.rbs +102 -0
  207. data/sig/whop_sdk/models/course_retrieve_params.rbs +15 -0
  208. data/sig/whop_sdk/models/course_update_params.rbs +137 -0
  209. data/sig/whop_sdk/models/experience_duplicate_params.rbs +23 -0
  210. data/sig/whop_sdk/models/forum_post.rbs +10 -0
  211. data/sig/whop_sdk/models/forum_post_list_response.rbs +10 -0
  212. data/sig/whop_sdk/models/forum_post_update_params.rbs +53 -0
  213. data/sig/whop_sdk/models/languages.rbs +56 -0
  214. data/sig/whop_sdk/models/ledger_account_retrieve_response.rbs +20 -1
  215. data/sig/whop_sdk/models/lesson.rbs +248 -0
  216. data/sig/whop_sdk/models/lesson_types.rbs +19 -0
  217. data/sig/whop_sdk/models/lesson_visibilities.rbs +14 -0
  218. data/sig/whop_sdk/models/member_list_params.rbs +6 -1
  219. data/sig/whop_sdk/models/membership.rbs +17 -0
  220. data/sig/whop_sdk/models/membership_list_params.rbs +11 -6
  221. data/sig/whop_sdk/models/membership_list_response.rbs +17 -0
  222. data/sig/whop_sdk/models/message_update_params.rbs +48 -0
  223. data/sig/whop_sdk/models/payment.rbs +12 -12
  224. data/sig/whop_sdk/models/payment_list_params.rbs +4 -25
  225. data/sig/whop_sdk/models/payment_list_response.rbs +12 -12
  226. data/sig/whop_sdk/models/payment_method_types.rbs +180 -0
  227. data/sig/whop_sdk/models/plan.rbs +15 -0
  228. data/sig/whop_sdk/models/plan_create_params.rbs +20 -0
  229. data/sig/whop_sdk/models/plan_list_response.rbs +15 -0
  230. data/sig/whop_sdk/models/plan_update_params.rbs +20 -0
  231. data/sig/whop_sdk/models/product.rbs +5 -0
  232. data/sig/whop_sdk/models/product_create_params.rbs +0 -22
  233. data/sig/whop_sdk/models/product_list_item.rbs +5 -0
  234. data/sig/whop_sdk/models/product_update_params.rbs +17 -0
  235. data/sig/whop_sdk/models/promo_code.rbs +134 -0
  236. data/sig/whop_sdk/models/promo_code_create_params.rbs +96 -0
  237. data/sig/whop_sdk/models/promo_code_delete_params.rbs +15 -0
  238. data/sig/whop_sdk/models/promo_code_delete_response.rbs +5 -0
  239. data/sig/whop_sdk/models/promo_code_list_params.rbs +61 -0
  240. data/sig/whop_sdk/models/promo_code_list_response.rbs +117 -0
  241. data/sig/whop_sdk/models/promo_code_retrieve_params.rbs +15 -0
  242. data/sig/whop_sdk/models/promo_code_status.rbs +15 -0
  243. data/sig/whop_sdk/models/promo_duration.rbs +15 -0
  244. data/sig/whop_sdk/models/review_list_params.rbs +56 -0
  245. data/sig/whop_sdk/models/review_list_response.rbs +116 -0
  246. data/sig/whop_sdk/models/review_retrieve_params.rbs +15 -0
  247. data/sig/whop_sdk/models/review_retrieve_response.rbs +152 -0
  248. data/sig/whop_sdk/models/review_status.rbs +15 -0
  249. data/sig/whop_sdk/models.rbs +76 -0
  250. data/sig/whop_sdk/resources/course_chapters.rbs +35 -0
  251. data/sig/whop_sdk/resources/course_lessons.rbs +47 -0
  252. data/sig/whop_sdk/resources/courses.rbs +47 -0
  253. data/sig/whop_sdk/resources/experiences.rbs +6 -0
  254. data/sig/whop_sdk/resources/forum_posts.rbs +9 -0
  255. data/sig/whop_sdk/resources/members.rbs +1 -0
  256. data/sig/whop_sdk/resources/memberships.rbs +2 -1
  257. data/sig/whop_sdk/resources/messages.rbs +8 -0
  258. data/sig/whop_sdk/resources/payments.rbs +1 -1
  259. data/sig/whop_sdk/resources/plans.rbs +8 -0
  260. data/sig/whop_sdk/resources/products.rbs +1 -2
  261. data/sig/whop_sdk/resources/promo_codes.rbs +45 -0
  262. data/sig/whop_sdk/resources/reviews.rbs +23 -0
  263. metadata +189 -2
@@ -51,6 +51,14 @@ module WhopSDK
51
51
  # @return [String, nil]
52
52
  required :description, String, nil?: true
53
53
 
54
+ # @!attribute external_identifier
55
+ # A unique identifier used to create or update products. When provided on product
56
+ # creation endpoints, we’ll look up an existing product by this identifier — if it
57
+ # exists, we’ll update it; if not, we’ll create a new one.
58
+ #
59
+ # @return [String, nil]
60
+ required :external_identifier, String, nil?: true
61
+
54
62
  # @!attribute global_affiliate_percentage
55
63
  # The percentage of a transaction a user is eligible to earn from the whop
56
64
  # marketplace global affiliate program.
@@ -143,7 +151,7 @@ module WhopSDK
143
151
  # @return [Symbol, WhopSDK::Models::Visibility]
144
152
  required :visibility, enum: -> { WhopSDK::Visibility }
145
153
 
146
- # @!method initialize(id:, business_type:, company:, created_at:, custom_cta:, custom_cta_url:, custom_statement_descriptor:, description:, global_affiliate_percentage:, global_affiliate_status:, headline:, industry_type:, member_affiliate_percentage:, member_affiliate_status:, member_count:, owner_user:, product_tax_code:, published_reviews_count:, route:, title:, updated_at:, verified:, visibility:)
154
+ # @!method initialize(id:, business_type:, company:, created_at:, custom_cta:, custom_cta_url:, custom_statement_descriptor:, description:, external_identifier:, global_affiliate_percentage:, global_affiliate_status:, headline:, industry_type:, member_affiliate_percentage:, member_affiliate_status:, member_count:, owner_user:, product_tax_code:, published_reviews_count:, route:, title:, updated_at:, verified:, visibility:)
147
155
  # Some parameter documentations has been truncated, see {WhopSDK::Models::Product}
148
156
  # for more details.
149
157
  #
@@ -165,6 +173,8 @@ module WhopSDK
165
173
  #
166
174
  # @param description [String, nil] A short description of what the company offers or does.
167
175
  #
176
+ # @param external_identifier [String, nil] A unique identifier used to create or update products. When provided on product
177
+ #
168
178
  # @param global_affiliate_percentage [Float, nil] The percentage of a transaction a user is eligible to earn from the whop marketp
169
179
  #
170
180
  # @param global_affiliate_status [Symbol, WhopSDK::Models::GlobalAffiliateStatus] The status of the global affiliate program for this product.
@@ -19,18 +19,6 @@ module WhopSDK
19
19
  # @return [String]
20
20
  required :title, String
21
21
 
22
- # @!attribute access_pass_type
23
- # The different types an access pass can be.
24
- #
25
- # @return [Symbol, WhopSDK::Models::AccessPassType, nil]
26
- optional :access_pass_type, enum: -> { WhopSDK::AccessPassType }, nil?: true
27
-
28
- # @!attribute banner_image
29
- # A banner image for the product in png, jpeg format
30
- #
31
- # @return [WhopSDK::Models::ProductCreateParams::BannerImage, nil]
32
- optional :banner_image, -> { WhopSDK::ProductCreateParams::BannerImage }, nil?: true
33
-
34
22
  # @!attribute business_type
35
23
  # The different business types a company can be.
36
24
  #
@@ -149,7 +137,7 @@ module WhopSDK
149
137
  # @return [Symbol, WhopSDK::Models::Visibility, nil]
150
138
  optional :visibility, enum: -> { WhopSDK::Visibility }, nil?: true
151
139
 
152
- # @!method initialize(company_id:, title:, access_pass_type: nil, banner_image: nil, business_type: nil, collect_shipping_address: nil, custom_cta: nil, custom_cta_url: nil, custom_statement_descriptor: nil, description: nil, experience_ids: nil, global_affiliate_percentage: nil, global_affiliate_status: nil, headline: nil, industry_type: nil, member_affiliate_percentage: nil, member_affiliate_status: nil, plan_options: nil, product_highlights: nil, product_tax_code_id: nil, redirect_purchase_url: nil, route: nil, visibility: nil, request_options: {})
140
+ # @!method initialize(company_id:, title:, business_type: nil, collect_shipping_address: nil, custom_cta: nil, custom_cta_url: nil, custom_statement_descriptor: nil, description: nil, experience_ids: nil, global_affiliate_percentage: nil, global_affiliate_status: nil, headline: nil, industry_type: nil, member_affiliate_percentage: nil, member_affiliate_status: nil, plan_options: nil, product_highlights: nil, product_tax_code_id: nil, redirect_purchase_url: nil, route: nil, visibility: nil, request_options: {})
153
141
  # Some parameter documentations has been truncated, see
154
142
  # {WhopSDK::Models::ProductCreateParams} for more details.
155
143
  #
@@ -157,10 +145,6 @@ module WhopSDK
157
145
  #
158
146
  # @param title [String] The title of the product.
159
147
  #
160
- # @param access_pass_type [Symbol, WhopSDK::Models::AccessPassType, nil] The different types an access pass can be.
161
- #
162
- # @param banner_image [WhopSDK::Models::ProductCreateParams::BannerImage, nil] A banner image for the product in png, jpeg format
163
- #
164
148
  # @param business_type [Symbol, WhopSDK::Models::BusinessTypes, nil] The different business types a company can be.
165
149
  #
166
150
  # @param collect_shipping_address [Boolean, nil] Whether or not to collect shipping information at checkout from the customer.
@@ -202,34 +186,6 @@ module WhopSDK
202
186
  #
203
187
  # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}]
204
188
 
205
- class BannerImage < WhopSDK::Internal::Type::BaseModel
206
- # @!attribute id
207
- # The ID of an existing attachment object. Use this when updating a resource and
208
- # keeping a subset of the attachments. Don't use this unless you know what you're
209
- # doing.
210
- #
211
- # @return [String, nil]
212
- optional :id, String, nil?: true
213
-
214
- # @!attribute direct_upload_id
215
- # This ID should be used the first time you upload an attachment. It is the ID of
216
- # the direct upload that was created when uploading the file to S3 via the
217
- # mediaDirectUpload mutation.
218
- #
219
- # @return [String, nil]
220
- optional :direct_upload_id, String, nil?: true
221
-
222
- # @!method initialize(id: nil, direct_upload_id: nil)
223
- # Some parameter documentations has been truncated, see
224
- # {WhopSDK::Models::ProductCreateParams::BannerImage} for more details.
225
- #
226
- # A banner image for the product in png, jpeg format
227
- #
228
- # @param id [String, nil] The ID of an existing attachment object. Use this when updating a resource and k
229
- #
230
- # @param direct_upload_id [String, nil] This ID should be used the first time you upload an attachment. It is the ID of
231
- end
232
-
233
189
  class PlanOptions < WhopSDK::Internal::Type::BaseModel
234
190
  # @!attribute base_currency
235
191
  # The available currencies on the platform
@@ -21,6 +21,14 @@ module WhopSDK
21
21
  # @return [Time]
22
22
  required :created_at, Time
23
23
 
24
+ # @!attribute external_identifier
25
+ # A unique identifier used to create or update products. When provided on product
26
+ # creation endpoints, we’ll look up an existing product by this identifier — if it
27
+ # exists, we’ll update it; if not, we’ll create a new one.
28
+ #
29
+ # @return [String, nil]
30
+ required :external_identifier, String, nil?: true
31
+
24
32
  # @!attribute headline
25
33
  # The headline of the product.
26
34
  #
@@ -75,7 +83,10 @@ module WhopSDK
75
83
  # @return [Symbol, WhopSDK::Models::Visibility]
76
84
  required :visibility, enum: -> { WhopSDK::Visibility }
77
85
 
78
- # @!method initialize(id:, business_type:, created_at:, headline:, industry_type:, member_count:, published_reviews_count:, route:, title:, updated_at:, verified:, visibility:)
86
+ # @!method initialize(id:, business_type:, created_at:, external_identifier:, headline:, industry_type:, member_count:, published_reviews_count:, route:, title:, updated_at:, verified:, visibility:)
87
+ # Some parameter documentations has been truncated, see
88
+ # {WhopSDK::Models::ProductListItem} for more details.
89
+ #
79
90
  # An object representing a (sanitized) access pass.
80
91
  #
81
92
  # @param id [String] The internal ID of the public product.
@@ -84,6 +95,8 @@ module WhopSDK
84
95
  #
85
96
  # @param created_at [Time] When the product was created.
86
97
  #
98
+ # @param external_identifier [String, nil] A unique identifier used to create or update products. When provided on product
99
+ #
87
100
  # @param headline [String, nil] The headline of the product.
88
101
  #
89
102
  # @param industry_type [Symbol, WhopSDK::Models::IndustryTypes, nil] The different industry types a company can be in.
@@ -105,6 +105,12 @@ module WhopSDK
105
105
  # @return [String, nil]
106
106
  optional :route, String, nil?: true
107
107
 
108
+ # @!attribute store_page_config
109
+ # Configuration for a product on the company's store page.
110
+ #
111
+ # @return [WhopSDK::Models::ProductUpdateParams::StorePageConfig, nil]
112
+ optional :store_page_config, -> { WhopSDK::ProductUpdateParams::StorePageConfig }, nil?: true
113
+
108
114
  # @!attribute title
109
115
  # The title of the product.
110
116
  #
@@ -117,7 +123,7 @@ module WhopSDK
117
123
  # @return [Symbol, WhopSDK::Models::Visibility, nil]
118
124
  optional :visibility, enum: -> { WhopSDK::Visibility }, nil?: true
119
125
 
120
- # @!method initialize(banner_image: nil, business_type: nil, collect_shipping_address: nil, custom_cta: nil, custom_cta_url: nil, custom_statement_descriptor: nil, description: nil, global_affiliate_percentage: nil, global_affiliate_status: nil, headline: nil, industry_type: nil, member_affiliate_percentage: nil, member_affiliate_status: nil, product_tax_code_id: nil, redirect_purchase_url: nil, route: nil, title: nil, visibility: nil, request_options: {})
126
+ # @!method initialize(banner_image: nil, business_type: nil, collect_shipping_address: nil, custom_cta: nil, custom_cta_url: nil, custom_statement_descriptor: nil, description: nil, global_affiliate_percentage: nil, global_affiliate_status: nil, headline: nil, industry_type: nil, member_affiliate_percentage: nil, member_affiliate_status: nil, product_tax_code_id: nil, redirect_purchase_url: nil, route: nil, store_page_config: nil, title: nil, visibility: nil, request_options: {})
121
127
  # Some parameter documentations has been truncated, see
122
128
  # {WhopSDK::Models::ProductUpdateParams} for more details.
123
129
  #
@@ -154,6 +160,8 @@ module WhopSDK
154
160
  #
155
161
  # @param route [String, nil] The route of the product.
156
162
  #
163
+ # @param store_page_config [WhopSDK::Models::ProductUpdateParams::StorePageConfig, nil] Configuration for a product on the company's store page.
164
+ #
157
165
  # @param title [String, nil] The title of the product.
158
166
  #
159
167
  # @param visibility [Symbol, WhopSDK::Models::Visibility, nil] Visibility of a resource
@@ -187,6 +195,27 @@ module WhopSDK
187
195
  #
188
196
  # @param direct_upload_id [String, nil] This ID should be used the first time you upload an attachment. It is the ID of
189
197
  end
198
+
199
+ class StorePageConfig < WhopSDK::Internal::Type::BaseModel
200
+ # @!attribute custom_cta
201
+ # Custom call-to-action text for the product's store page.
202
+ #
203
+ # @return [String, nil]
204
+ optional :custom_cta, String, nil?: true
205
+
206
+ # @!attribute show_price
207
+ # Whether or not to show the price on the product's store page.
208
+ #
209
+ # @return [Boolean, nil]
210
+ optional :show_price, WhopSDK::Internal::Type::Boolean, nil?: true
211
+
212
+ # @!method initialize(custom_cta: nil, show_price: nil)
213
+ # Configuration for a product on the company's store page.
214
+ #
215
+ # @param custom_cta [String, nil] Custom call-to-action text for the product's store page.
216
+ #
217
+ # @param show_price [Boolean, nil] Whether or not to show the price on the product's store page.
218
+ end
190
219
  end
191
220
  end
192
221
  end
@@ -0,0 +1,211 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @see WhopSDK::Resources::PromoCodes#create
6
+ class PromoCode < WhopSDK::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The ID of the promo.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute amount_off
14
+ # The amount off (% or flat amount) for the promo.
15
+ #
16
+ # @return [Float]
17
+ required :amount_off, Float
18
+
19
+ # @!attribute churned_users_only
20
+ # Restricts promo use to only users who have churned from the company before.
21
+ #
22
+ # @return [Boolean]
23
+ required :churned_users_only, WhopSDK::Internal::Type::Boolean
24
+
25
+ # @!attribute code
26
+ # The specific code used to apply the promo at checkout.
27
+ #
28
+ # @return [String, nil]
29
+ required :code, String, nil?: true
30
+
31
+ # @!attribute company
32
+ # The company for the promo code.
33
+ #
34
+ # @return [WhopSDK::Models::PromoCode::Company]
35
+ required :company, -> { WhopSDK::PromoCode::Company }
36
+
37
+ # @!attribute created_at
38
+ # The timestamp of when the promo was created.
39
+ #
40
+ # @return [Time]
41
+ required :created_at, Time
42
+
43
+ # @!attribute currency
44
+ # The monetary currency of the promo code.
45
+ #
46
+ # @return [Symbol, WhopSDK::Models::Currency]
47
+ required :currency, enum: -> { WhopSDK::Currency }
48
+
49
+ # @!attribute duration
50
+ # The duration setting for the promo code
51
+ #
52
+ # @return [Symbol, WhopSDK::Models::PromoDuration, nil]
53
+ required :duration, enum: -> { WhopSDK::PromoDuration }, nil?: true
54
+
55
+ # @!attribute existing_memberships_only
56
+ # Restricts promo use to only be applied to already purchased memberships.
57
+ #
58
+ # @return [Boolean]
59
+ required :existing_memberships_only, WhopSDK::Internal::Type::Boolean
60
+
61
+ # @!attribute expires_at
62
+ # The date/time of when the promo expires.
63
+ #
64
+ # @return [Time, nil]
65
+ required :expires_at, Time, nil?: true
66
+
67
+ # @!attribute new_users_only
68
+ # Restricts promo use to only users who have never purchased from the company
69
+ # before.
70
+ #
71
+ # @return [Boolean]
72
+ required :new_users_only, WhopSDK::Internal::Type::Boolean
73
+
74
+ # @!attribute one_per_customer
75
+ # Restricts promo use to only be applied once per customer.
76
+ #
77
+ # @return [Boolean]
78
+ required :one_per_customer, WhopSDK::Internal::Type::Boolean
79
+
80
+ # @!attribute product
81
+ # The access pass associated with the promo code.
82
+ #
83
+ # @return [WhopSDK::Models::PromoCode::Product, nil]
84
+ required :product, -> { WhopSDK::PromoCode::Product }, nil?: true
85
+
86
+ # @!attribute promo_duration_months
87
+ # The number of months the promo is applied for.
88
+ #
89
+ # @return [Integer, nil]
90
+ required :promo_duration_months, Integer, nil?: true
91
+
92
+ # @!attribute promo_type
93
+ # The type (% or flat amount) of the promo.
94
+ #
95
+ # @return [Symbol, WhopSDK::Models::PromoType]
96
+ required :promo_type, enum: -> { WhopSDK::PromoType }
97
+
98
+ # @!attribute status
99
+ # Indicates if the promo code is live or disabled.
100
+ #
101
+ # @return [Symbol, WhopSDK::Models::PromoCodeStatus]
102
+ required :status, enum: -> { WhopSDK::PromoCodeStatus }
103
+
104
+ # @!attribute stock
105
+ # The quantity limit on the number of uses.
106
+ #
107
+ # @return [Integer]
108
+ required :stock, Integer
109
+
110
+ # @!attribute unlimited_stock
111
+ # Whether or not the promo code has unlimited stock.
112
+ #
113
+ # @return [Boolean]
114
+ required :unlimited_stock, WhopSDK::Internal::Type::Boolean
115
+
116
+ # @!attribute uses
117
+ # The amount of times the promo codes has been used.
118
+ #
119
+ # @return [Integer]
120
+ required :uses, Integer
121
+
122
+ # @!method initialize(id:, amount_off:, churned_users_only:, code:, company:, created_at:, currency:, duration:, existing_memberships_only:, expires_at:, new_users_only:, one_per_customer:, product:, promo_duration_months:, promo_type:, status:, stock:, unlimited_stock:, uses:)
123
+ # Some parameter documentations has been truncated, see
124
+ # {WhopSDK::Models::PromoCode} for more details.
125
+ #
126
+ # An object representing a promo code for a plan.
127
+ #
128
+ # @param id [String] The ID of the promo.
129
+ #
130
+ # @param amount_off [Float] The amount off (% or flat amount) for the promo.
131
+ #
132
+ # @param churned_users_only [Boolean] Restricts promo use to only users who have churned from the company before.
133
+ #
134
+ # @param code [String, nil] The specific code used to apply the promo at checkout.
135
+ #
136
+ # @param company [WhopSDK::Models::PromoCode::Company] The company for the promo code.
137
+ #
138
+ # @param created_at [Time] The timestamp of when the promo was created.
139
+ #
140
+ # @param currency [Symbol, WhopSDK::Models::Currency] The monetary currency of the promo code.
141
+ #
142
+ # @param duration [Symbol, WhopSDK::Models::PromoDuration, nil] The duration setting for the promo code
143
+ #
144
+ # @param existing_memberships_only [Boolean] Restricts promo use to only be applied to already purchased memberships.
145
+ #
146
+ # @param expires_at [Time, nil] The date/time of when the promo expires.
147
+ #
148
+ # @param new_users_only [Boolean] Restricts promo use to only users who have never purchased from the company befo
149
+ #
150
+ # @param one_per_customer [Boolean] Restricts promo use to only be applied once per customer.
151
+ #
152
+ # @param product [WhopSDK::Models::PromoCode::Product, nil] The access pass associated with the promo code.
153
+ #
154
+ # @param promo_duration_months [Integer, nil] The number of months the promo is applied for.
155
+ #
156
+ # @param promo_type [Symbol, WhopSDK::Models::PromoType] The type (% or flat amount) of the promo.
157
+ #
158
+ # @param status [Symbol, WhopSDK::Models::PromoCodeStatus] Indicates if the promo code is live or disabled.
159
+ #
160
+ # @param stock [Integer] The quantity limit on the number of uses.
161
+ #
162
+ # @param unlimited_stock [Boolean] Whether or not the promo code has unlimited stock.
163
+ #
164
+ # @param uses [Integer] The amount of times the promo codes has been used.
165
+
166
+ # @see WhopSDK::Models::PromoCode#company
167
+ class Company < WhopSDK::Internal::Type::BaseModel
168
+ # @!attribute id
169
+ # The ID of the company
170
+ #
171
+ # @return [String]
172
+ required :id, String
173
+
174
+ # @!attribute title
175
+ # The written name of the company.
176
+ #
177
+ # @return [String]
178
+ required :title, String
179
+
180
+ # @!method initialize(id:, title:)
181
+ # The company for the promo code.
182
+ #
183
+ # @param id [String] The ID of the company
184
+ #
185
+ # @param title [String] The written name of the company.
186
+ end
187
+
188
+ # @see WhopSDK::Models::PromoCode#product
189
+ class Product < WhopSDK::Internal::Type::BaseModel
190
+ # @!attribute id
191
+ # The internal ID of the public product.
192
+ #
193
+ # @return [String]
194
+ required :id, String
195
+
196
+ # @!attribute title
197
+ # The title of the product. Use for Whop 4.0.
198
+ #
199
+ # @return [String]
200
+ required :title, String
201
+
202
+ # @!method initialize(id:, title:)
203
+ # The access pass associated with the promo code.
204
+ #
205
+ # @param id [String] The internal ID of the public product.
206
+ #
207
+ # @param title [String] The title of the product. Use for Whop 4.0.
208
+ end
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,140 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @see WhopSDK::Resources::PromoCodes#create
6
+ class PromoCodeCreateParams < WhopSDK::Internal::Type::BaseModel
7
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
8
+ include WhopSDK::Internal::Type::RequestParameters
9
+
10
+ # @!attribute amount_off
11
+ # The amount off (% or flat amount) for the promo.
12
+ #
13
+ # @return [Float]
14
+ required :amount_off, Float
15
+
16
+ # @!attribute base_currency
17
+ # The monetary currency of the promo code.
18
+ #
19
+ # @return [Symbol, WhopSDK::Models::Currency]
20
+ required :base_currency, enum: -> { WhopSDK::Currency }
21
+
22
+ # @!attribute code
23
+ # The specific code used to apply the promo at checkout.
24
+ #
25
+ # @return [String]
26
+ required :code, String
27
+
28
+ # @!attribute company_id
29
+ # The id of the company to create the promo code for.
30
+ #
31
+ # @return [String]
32
+ required :company_id, String
33
+
34
+ # @!attribute new_users_only
35
+ # Restricts promo use to only users who have never purchased from the company
36
+ # before.
37
+ #
38
+ # @return [Boolean]
39
+ required :new_users_only, WhopSDK::Internal::Type::Boolean
40
+
41
+ # @!attribute promo_duration_months
42
+ # The number of months this promo code is applied and valid for.
43
+ #
44
+ # @return [Integer]
45
+ required :promo_duration_months, Integer
46
+
47
+ # @!attribute promo_type
48
+ # The type (% or flat amount) of the promo.
49
+ #
50
+ # @return [Symbol, WhopSDK::Models::PromoType]
51
+ required :promo_type, enum: -> { WhopSDK::PromoType }
52
+
53
+ # @!attribute churned_users_only
54
+ # Restricts promo use to only users who have churned from the company before.
55
+ #
56
+ # @return [Boolean, nil]
57
+ optional :churned_users_only, WhopSDK::Internal::Type::Boolean, nil?: true
58
+
59
+ # @!attribute existing_memberships_only
60
+ # Whether this promo code is for existing memberships only (cancelations)
61
+ #
62
+ # @return [Boolean, nil]
63
+ optional :existing_memberships_only, WhopSDK::Internal::Type::Boolean, nil?: true
64
+
65
+ # @!attribute expires_at
66
+ # The date/time of when the promo expires.
67
+ #
68
+ # @return [Time, nil]
69
+ optional :expires_at, Time, nil?: true
70
+
71
+ # @!attribute one_per_customer
72
+ # Restricts promo use to only be applied once per customer.
73
+ #
74
+ # @return [Boolean, nil]
75
+ optional :one_per_customer, WhopSDK::Internal::Type::Boolean, nil?: true
76
+
77
+ # @!attribute plan_ids
78
+ # The IDs of the plans that the promo code applies to. If product_id is provided,
79
+ # it will only apply to plans attached to that product
80
+ #
81
+ # @return [Array<String>, nil]
82
+ optional :plan_ids, WhopSDK::Internal::Type::ArrayOf[String], nil?: true
83
+
84
+ # @!attribute product_id
85
+ # The product to lock the promo code to, if any. If provided will filter out any
86
+ # plan ids not attached to this product
87
+ #
88
+ # @return [String, nil]
89
+ optional :product_id, String, nil?: true
90
+
91
+ # @!attribute stock
92
+ # The quantity limit on the number of uses.
93
+ #
94
+ # @return [Integer, nil]
95
+ optional :stock, Integer, nil?: true
96
+
97
+ # @!attribute unlimited_stock
98
+ # Whether or not the promo code should have unlimited stock.
99
+ #
100
+ # @return [Boolean, nil]
101
+ optional :unlimited_stock, WhopSDK::Internal::Type::Boolean, nil?: true
102
+
103
+ # @!method initialize(amount_off:, base_currency:, code:, company_id:, new_users_only:, promo_duration_months:, promo_type:, churned_users_only: nil, existing_memberships_only: nil, expires_at: nil, one_per_customer: nil, plan_ids: nil, product_id: nil, stock: nil, unlimited_stock: nil, request_options: {})
104
+ # Some parameter documentations has been truncated, see
105
+ # {WhopSDK::Models::PromoCodeCreateParams} for more details.
106
+ #
107
+ # @param amount_off [Float] The amount off (% or flat amount) for the promo.
108
+ #
109
+ # @param base_currency [Symbol, WhopSDK::Models::Currency] The monetary currency of the promo code.
110
+ #
111
+ # @param code [String] The specific code used to apply the promo at checkout.
112
+ #
113
+ # @param company_id [String] The id of the company to create the promo code for.
114
+ #
115
+ # @param new_users_only [Boolean] Restricts promo use to only users who have never purchased from the company befo
116
+ #
117
+ # @param promo_duration_months [Integer] The number of months this promo code is applied and valid for.
118
+ #
119
+ # @param promo_type [Symbol, WhopSDK::Models::PromoType] The type (% or flat amount) of the promo.
120
+ #
121
+ # @param churned_users_only [Boolean, nil] Restricts promo use to only users who have churned from the company before.
122
+ #
123
+ # @param existing_memberships_only [Boolean, nil] Whether this promo code is for existing memberships only (cancelations)
124
+ #
125
+ # @param expires_at [Time, nil] The date/time of when the promo expires.
126
+ #
127
+ # @param one_per_customer [Boolean, nil] Restricts promo use to only be applied once per customer.
128
+ #
129
+ # @param plan_ids [Array<String>, nil] The IDs of the plans that the promo code applies to. If product_id is provided,
130
+ #
131
+ # @param product_id [String, nil] The product to lock the promo code to, if any. If provided will filter out any p
132
+ #
133
+ # @param stock [Integer, nil] The quantity limit on the number of uses.
134
+ #
135
+ # @param unlimited_stock [Boolean, nil] Whether or not the promo code should have unlimited stock.
136
+ #
137
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}]
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @see WhopSDK::Resources::PromoCodes#delete
6
+ class PromoCodeDeleteParams < WhopSDK::Internal::Type::BaseModel
7
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
8
+ include WhopSDK::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @type [WhopSDK::Internal::Type::Converter]
6
+ PromoCodeDeleteResponse = WhopSDK::Internal::Type::Boolean
7
+ end
8
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @see WhopSDK::Resources::PromoCodes#list
6
+ class PromoCodeListParams < WhopSDK::Internal::Type::BaseModel
7
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
8
+ include WhopSDK::Internal::Type::RequestParameters
9
+
10
+ # @!attribute company_id
11
+ # The ID of the company to list promo codes for
12
+ #
13
+ # @return [String]
14
+ required :company_id, String
15
+
16
+ # @!attribute after
17
+ # Returns the elements in the list that come after the specified cursor.
18
+ #
19
+ # @return [String, nil]
20
+ optional :after, String, nil?: true
21
+
22
+ # @!attribute before
23
+ # Returns the elements in the list that come before the specified cursor.
24
+ #
25
+ # @return [String, nil]
26
+ optional :before, String, nil?: true
27
+
28
+ # @!attribute first
29
+ # Returns the first _n_ elements from the list.
30
+ #
31
+ # @return [Integer, nil]
32
+ optional :first, Integer, nil?: true
33
+
34
+ # @!attribute last
35
+ # Returns the last _n_ elements from the list.
36
+ #
37
+ # @return [Integer, nil]
38
+ optional :last, Integer, nil?: true
39
+
40
+ # @!attribute plan_ids
41
+ # Filter promo codes by plan ID(s)
42
+ #
43
+ # @return [Array<String>, nil]
44
+ optional :plan_ids, WhopSDK::Internal::Type::ArrayOf[String], nil?: true
45
+
46
+ # @!attribute product_ids
47
+ # Filter promo codes by product ID(s)
48
+ #
49
+ # @return [Array<String>, nil]
50
+ optional :product_ids, WhopSDK::Internal::Type::ArrayOf[String], nil?: true
51
+
52
+ # @!attribute status
53
+ # Statuses for promo codes
54
+ #
55
+ # @return [Symbol, WhopSDK::Models::PromoCodeStatus, nil]
56
+ optional :status, enum: -> { WhopSDK::PromoCodeStatus }, nil?: true
57
+
58
+ # @!method initialize(company_id:, after: nil, before: nil, first: nil, last: nil, plan_ids: nil, product_ids: nil, status: nil, request_options: {})
59
+ # @param company_id [String] The ID of the company to list promo codes for
60
+ #
61
+ # @param after [String, nil] Returns the elements in the list that come after the specified cursor.
62
+ #
63
+ # @param before [String, nil] Returns the elements in the list that come before the specified cursor.
64
+ #
65
+ # @param first [Integer, nil] Returns the first _n_ elements from the list.
66
+ #
67
+ # @param last [Integer, nil] Returns the last _n_ elements from the list.
68
+ #
69
+ # @param plan_ids [Array<String>, nil] Filter promo codes by plan ID(s)
70
+ #
71
+ # @param product_ids [Array<String>, nil] Filter promo codes by product ID(s)
72
+ #
73
+ # @param status [Symbol, WhopSDK::Models::PromoCodeStatus, nil] Statuses for promo codes
74
+ #
75
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}]
76
+ end
77
+ end
78
+ end