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
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseLessonRetrieveParams < WhopSDK::Internal::Type::BaseModel
6
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
7
+ include WhopSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(WhopSDK::CourseLessonRetrieveParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: WhopSDK::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: WhopSDK::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,465 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseLessonUpdateParams < WhopSDK::Internal::Type::BaseModel
6
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
7
+ include WhopSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(WhopSDK::CourseLessonUpdateParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # Assessment questions for quiz/knowledge check lessons. Replaces all existing
15
+ # questions.
16
+ sig do
17
+ returns(
18
+ T.nilable(
19
+ T::Array[WhopSDK::CourseLessonUpdateParams::AssessmentQuestion]
20
+ )
21
+ )
22
+ end
23
+ attr_accessor :assessment_questions
24
+
25
+ # General attachments for the lesson (PDFs, files, etc). Replaces all existing
26
+ # attachments.
27
+ sig do
28
+ returns(
29
+ T.nilable(T::Array[WhopSDK::CourseLessonUpdateParams::Attachment])
30
+ )
31
+ end
32
+ attr_accessor :attachments
33
+
34
+ # The content of the lesson
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :content
37
+
38
+ # Days from course start until unlock
39
+ sig { returns(T.nilable(Integer)) }
40
+ attr_accessor :days_from_course_start_until_unlock
41
+
42
+ # The available types for a lesson
43
+ sig { returns(T.nilable(WhopSDK::LessonTypes::OrSymbol)) }
44
+ attr_accessor :lesson_type
45
+
46
+ # The main PDF file for this lesson
47
+ sig { returns(T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf)) }
48
+ attr_reader :main_pdf
49
+
50
+ sig do
51
+ params(
52
+ main_pdf:
53
+ T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash)
54
+ ).void
55
+ end
56
+ attr_writer :main_pdf
57
+
58
+ # The ID of the Mux asset to attach to this lesson for video lessons
59
+ sig { returns(T.nilable(String)) }
60
+ attr_accessor :mux_asset_id
61
+
62
+ # The title of the lesson
63
+ sig { returns(T.nilable(String)) }
64
+ attr_accessor :title
65
+
66
+ # The available visibilities for a lesson. Determines how / whether a lesson is
67
+ # visible to users.
68
+ sig { returns(T.nilable(WhopSDK::LessonVisibilities::OrSymbol)) }
69
+ attr_accessor :visibility
70
+
71
+ sig do
72
+ params(
73
+ assessment_questions:
74
+ T.nilable(
75
+ T::Array[
76
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::OrHash
77
+ ]
78
+ ),
79
+ attachments:
80
+ T.nilable(
81
+ T::Array[WhopSDK::CourseLessonUpdateParams::Attachment::OrHash]
82
+ ),
83
+ content: T.nilable(String),
84
+ days_from_course_start_until_unlock: T.nilable(Integer),
85
+ lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
86
+ main_pdf:
87
+ T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf::OrHash),
88
+ mux_asset_id: T.nilable(String),
89
+ title: T.nilable(String),
90
+ visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
91
+ request_options: WhopSDK::RequestOptions::OrHash
92
+ ).returns(T.attached_class)
93
+ end
94
+ def self.new(
95
+ # Assessment questions for quiz/knowledge check lessons. Replaces all existing
96
+ # questions.
97
+ assessment_questions: nil,
98
+ # General attachments for the lesson (PDFs, files, etc). Replaces all existing
99
+ # attachments.
100
+ attachments: nil,
101
+ # The content of the lesson
102
+ content: nil,
103
+ # Days from course start until unlock
104
+ days_from_course_start_until_unlock: nil,
105
+ # The available types for a lesson
106
+ lesson_type: nil,
107
+ # The main PDF file for this lesson
108
+ main_pdf: nil,
109
+ # The ID of the Mux asset to attach to this lesson for video lessons
110
+ mux_asset_id: nil,
111
+ # The title of the lesson
112
+ title: nil,
113
+ # The available visibilities for a lesson. Determines how / whether a lesson is
114
+ # visible to users.
115
+ visibility: nil,
116
+ request_options: {}
117
+ )
118
+ end
119
+
120
+ sig do
121
+ override.returns(
122
+ {
123
+ assessment_questions:
124
+ T.nilable(
125
+ T::Array[WhopSDK::CourseLessonUpdateParams::AssessmentQuestion]
126
+ ),
127
+ attachments:
128
+ T.nilable(
129
+ T::Array[WhopSDK::CourseLessonUpdateParams::Attachment]
130
+ ),
131
+ content: T.nilable(String),
132
+ days_from_course_start_until_unlock: T.nilable(Integer),
133
+ lesson_type: T.nilable(WhopSDK::LessonTypes::OrSymbol),
134
+ main_pdf: T.nilable(WhopSDK::CourseLessonUpdateParams::MainPdf),
135
+ mux_asset_id: T.nilable(String),
136
+ title: T.nilable(String),
137
+ visibility: T.nilable(WhopSDK::LessonVisibilities::OrSymbol),
138
+ request_options: WhopSDK::RequestOptions
139
+ }
140
+ )
141
+ end
142
+ def to_hash
143
+ end
144
+
145
+ class AssessmentQuestion < WhopSDK::Internal::Type::BaseModel
146
+ OrHash =
147
+ T.type_alias do
148
+ T.any(
149
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion,
150
+ WhopSDK::Internal::AnyHash
151
+ )
152
+ end
153
+
154
+ # The correct answer for the question. Used for short answer questions
155
+ sig { returns(String) }
156
+ attr_accessor :correct_answer
157
+
158
+ # The text of the question
159
+ sig { returns(String) }
160
+ attr_accessor :question_text
161
+
162
+ # The type of the question
163
+ sig { returns(WhopSDK::AssessmentQuestionTypes::OrSymbol) }
164
+ attr_accessor :question_type
165
+
166
+ # The ID of an existing question. If provided, the question will be updated. If
167
+ # not provided, a new question will be created.
168
+ sig { returns(T.nilable(String)) }
169
+ attr_accessor :id
170
+
171
+ # Optional image attachment for the question
172
+ sig do
173
+ returns(
174
+ T.nilable(
175
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
176
+ )
177
+ )
178
+ end
179
+ attr_reader :image
180
+
181
+ sig do
182
+ params(
183
+ image:
184
+ T.nilable(
185
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::OrHash
186
+ )
187
+ ).void
188
+ end
189
+ attr_writer :image
190
+
191
+ # The answer options for multiple choice/select questions
192
+ sig do
193
+ returns(
194
+ T.nilable(
195
+ T::Array[
196
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Option
197
+ ]
198
+ )
199
+ )
200
+ end
201
+ attr_accessor :options
202
+
203
+ # Input for creating or updating an assessment question
204
+ sig do
205
+ params(
206
+ correct_answer: String,
207
+ question_text: String,
208
+ question_type: WhopSDK::AssessmentQuestionTypes::OrSymbol,
209
+ id: T.nilable(String),
210
+ image:
211
+ T.nilable(
212
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image::OrHash
213
+ ),
214
+ options:
215
+ T.nilable(
216
+ T::Array[
217
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Option::OrHash
218
+ ]
219
+ )
220
+ ).returns(T.attached_class)
221
+ end
222
+ def self.new(
223
+ # The correct answer for the question. Used for short answer questions
224
+ correct_answer:,
225
+ # The text of the question
226
+ question_text:,
227
+ # The type of the question
228
+ question_type:,
229
+ # The ID of an existing question. If provided, the question will be updated. If
230
+ # not provided, a new question will be created.
231
+ id: nil,
232
+ # Optional image attachment for the question
233
+ image: nil,
234
+ # The answer options for multiple choice/select questions
235
+ options: nil
236
+ )
237
+ end
238
+
239
+ sig do
240
+ override.returns(
241
+ {
242
+ correct_answer: String,
243
+ question_text: String,
244
+ question_type: WhopSDK::AssessmentQuestionTypes::OrSymbol,
245
+ id: T.nilable(String),
246
+ image:
247
+ T.nilable(
248
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image
249
+ ),
250
+ options:
251
+ T.nilable(
252
+ T::Array[
253
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Option
254
+ ]
255
+ )
256
+ }
257
+ )
258
+ end
259
+ def to_hash
260
+ end
261
+
262
+ class Image < WhopSDK::Internal::Type::BaseModel
263
+ OrHash =
264
+ T.type_alias do
265
+ T.any(
266
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Image,
267
+ WhopSDK::Internal::AnyHash
268
+ )
269
+ end
270
+
271
+ # The ID of an existing attachment object. Use this when updating a resource and
272
+ # keeping a subset of the attachments. Don't use this unless you know what you're
273
+ # doing.
274
+ sig { returns(T.nilable(String)) }
275
+ attr_accessor :id
276
+
277
+ # This ID should be used the first time you upload an attachment. It is the ID of
278
+ # the direct upload that was created when uploading the file to S3 via the
279
+ # mediaDirectUpload mutation.
280
+ sig { returns(T.nilable(String)) }
281
+ attr_accessor :direct_upload_id
282
+
283
+ # Optional image attachment for the question
284
+ sig do
285
+ params(
286
+ id: T.nilable(String),
287
+ direct_upload_id: T.nilable(String)
288
+ ).returns(T.attached_class)
289
+ end
290
+ def self.new(
291
+ # The ID of an existing attachment object. Use this when updating a resource and
292
+ # keeping a subset of the attachments. Don't use this unless you know what you're
293
+ # doing.
294
+ id: nil,
295
+ # This ID should be used the first time you upload an attachment. It is the ID of
296
+ # the direct upload that was created when uploading the file to S3 via the
297
+ # mediaDirectUpload mutation.
298
+ direct_upload_id: nil
299
+ )
300
+ end
301
+
302
+ sig do
303
+ override.returns(
304
+ { id: T.nilable(String), direct_upload_id: T.nilable(String) }
305
+ )
306
+ end
307
+ def to_hash
308
+ end
309
+ end
310
+
311
+ class Option < WhopSDK::Internal::Type::BaseModel
312
+ OrHash =
313
+ T.type_alias do
314
+ T.any(
315
+ WhopSDK::CourseLessonUpdateParams::AssessmentQuestion::Option,
316
+ WhopSDK::Internal::AnyHash
317
+ )
318
+ end
319
+
320
+ # Whether this option is a correct answer
321
+ sig { returns(T::Boolean) }
322
+ attr_accessor :is_correct
323
+
324
+ # The text of the answer option
325
+ sig { returns(String) }
326
+ attr_accessor :option_text
327
+
328
+ # The ID of an existing option. If provided, the option will be updated. If not
329
+ # provided, a new option will be created.
330
+ sig { returns(T.nilable(String)) }
331
+ attr_accessor :id
332
+
333
+ # Input for creating or updating an assessment question option
334
+ sig do
335
+ params(
336
+ is_correct: T::Boolean,
337
+ option_text: String,
338
+ id: T.nilable(String)
339
+ ).returns(T.attached_class)
340
+ end
341
+ def self.new(
342
+ # Whether this option is a correct answer
343
+ is_correct:,
344
+ # The text of the answer option
345
+ option_text:,
346
+ # The ID of an existing option. If provided, the option will be updated. If not
347
+ # provided, a new option will be created.
348
+ id: nil
349
+ )
350
+ end
351
+
352
+ sig do
353
+ override.returns(
354
+ {
355
+ is_correct: T::Boolean,
356
+ option_text: String,
357
+ id: T.nilable(String)
358
+ }
359
+ )
360
+ end
361
+ def to_hash
362
+ end
363
+ end
364
+ end
365
+
366
+ class Attachment < WhopSDK::Internal::Type::BaseModel
367
+ OrHash =
368
+ T.type_alias do
369
+ T.any(
370
+ WhopSDK::CourseLessonUpdateParams::Attachment,
371
+ WhopSDK::Internal::AnyHash
372
+ )
373
+ end
374
+
375
+ # The ID of an existing attachment object. Use this when updating a resource and
376
+ # keeping a subset of the attachments. Don't use this unless you know what you're
377
+ # doing.
378
+ sig { returns(T.nilable(String)) }
379
+ attr_accessor :id
380
+
381
+ # This ID should be used the first time you upload an attachment. It is the ID of
382
+ # the direct upload that was created when uploading the file to S3 via the
383
+ # mediaDirectUpload mutation.
384
+ sig { returns(T.nilable(String)) }
385
+ attr_accessor :direct_upload_id
386
+
387
+ # Input for an attachment
388
+ sig do
389
+ params(
390
+ id: T.nilable(String),
391
+ direct_upload_id: T.nilable(String)
392
+ ).returns(T.attached_class)
393
+ end
394
+ def self.new(
395
+ # The ID of an existing attachment object. Use this when updating a resource and
396
+ # keeping a subset of the attachments. Don't use this unless you know what you're
397
+ # doing.
398
+ id: nil,
399
+ # This ID should be used the first time you upload an attachment. It is the ID of
400
+ # the direct upload that was created when uploading the file to S3 via the
401
+ # mediaDirectUpload mutation.
402
+ direct_upload_id: nil
403
+ )
404
+ end
405
+
406
+ sig do
407
+ override.returns(
408
+ { id: T.nilable(String), direct_upload_id: T.nilable(String) }
409
+ )
410
+ end
411
+ def to_hash
412
+ end
413
+ end
414
+
415
+ class MainPdf < WhopSDK::Internal::Type::BaseModel
416
+ OrHash =
417
+ T.type_alias do
418
+ T.any(
419
+ WhopSDK::CourseLessonUpdateParams::MainPdf,
420
+ WhopSDK::Internal::AnyHash
421
+ )
422
+ end
423
+
424
+ # The ID of an existing attachment object. Use this when updating a resource and
425
+ # keeping a subset of the attachments. Don't use this unless you know what you're
426
+ # doing.
427
+ sig { returns(T.nilable(String)) }
428
+ attr_accessor :id
429
+
430
+ # This ID should be used the first time you upload an attachment. It is the ID of
431
+ # the direct upload that was created when uploading the file to S3 via the
432
+ # mediaDirectUpload mutation.
433
+ sig { returns(T.nilable(String)) }
434
+ attr_accessor :direct_upload_id
435
+
436
+ # The main PDF file for this lesson
437
+ sig do
438
+ params(
439
+ id: T.nilable(String),
440
+ direct_upload_id: T.nilable(String)
441
+ ).returns(T.attached_class)
442
+ end
443
+ def self.new(
444
+ # The ID of an existing attachment object. Use this when updating a resource and
445
+ # keeping a subset of the attachments. Don't use this unless you know what you're
446
+ # doing.
447
+ id: nil,
448
+ # This ID should be used the first time you upload an attachment. It is the ID of
449
+ # the direct upload that was created when uploading the file to S3 via the
450
+ # mediaDirectUpload mutation.
451
+ direct_upload_id: nil
452
+ )
453
+ end
454
+
455
+ sig do
456
+ override.returns(
457
+ { id: T.nilable(String), direct_upload_id: T.nilable(String) }
458
+ )
459
+ end
460
+ def to_hash
461
+ end
462
+ end
463
+ end
464
+ end
465
+ end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseListParams < WhopSDK::Internal::Type::BaseModel
6
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
7
+ include WhopSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(WhopSDK::CourseListParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # Returns the elements in the list that come after the specified cursor.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :after
17
+
18
+ # Returns the elements in the list that come before the specified cursor.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :before
21
+
22
+ # The ID of the company
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :company_id
25
+
26
+ # The ID of the experience
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :experience_id
29
+
30
+ # Returns the first _n_ elements from the list.
31
+ sig { returns(T.nilable(Integer)) }
32
+ attr_accessor :first
33
+
34
+ # Returns the last _n_ elements from the list.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_accessor :last
37
+
38
+ sig do
39
+ params(
40
+ after: T.nilable(String),
41
+ before: T.nilable(String),
42
+ company_id: T.nilable(String),
43
+ experience_id: T.nilable(String),
44
+ first: T.nilable(Integer),
45
+ last: T.nilable(Integer),
46
+ request_options: WhopSDK::RequestOptions::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Returns the elements in the list that come after the specified cursor.
51
+ after: nil,
52
+ # Returns the elements in the list that come before the specified cursor.
53
+ before: nil,
54
+ # The ID of the company
55
+ company_id: nil,
56
+ # The ID of the experience
57
+ experience_id: nil,
58
+ # Returns the first _n_ elements from the list.
59
+ first: nil,
60
+ # Returns the last _n_ elements from the list.
61
+ last: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ after: T.nilable(String),
70
+ before: T.nilable(String),
71
+ company_id: T.nilable(String),
72
+ experience_id: T.nilable(String),
73
+ first: T.nilable(Integer),
74
+ last: T.nilable(Integer),
75
+ request_options: WhopSDK::RequestOptions
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+ end
82
+ end
83
+ end