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,198 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseListResponse < WhopSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(WhopSDK::Models::CourseListResponse, WhopSDK::Internal::AnyHash)
9
+ end
10
+
11
+ # The ID of the course. Looks like cors_XXX
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # Whether the course will award its students a PDF certificate after completing
16
+ # all lessons
17
+ sig { returns(T.nilable(T::Boolean)) }
18
+ attr_accessor :certificate_after_completion_enabled
19
+
20
+ # The timestamp of when the course was created
21
+ sig { returns(Time) }
22
+ attr_accessor :created_at
23
+
24
+ # A short description of the course
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :description
27
+
28
+ # The language spoken in the video content of the course, used to generate closed
29
+ # captions in the right language
30
+ sig { returns(WhopSDK::Languages::TaggedSymbol) }
31
+ attr_accessor :language
32
+
33
+ # Whether the course requires students to complete the previous lesson before
34
+ # moving on to the next one
35
+ sig { returns(T::Boolean) }
36
+ attr_accessor :require_completing_lessons_in_order
37
+
38
+ # A short tagline for the course. It is displayed under the course title in the UI
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :tagline
41
+
42
+ # The thumbnail for the course
43
+ sig { returns(T.nilable(WhopSDK::Models::CourseListResponse::Thumbnail)) }
44
+ attr_reader :thumbnail
45
+
46
+ sig do
47
+ params(
48
+ thumbnail:
49
+ T.nilable(WhopSDK::Models::CourseListResponse::Thumbnail::OrHash)
50
+ ).void
51
+ end
52
+ attr_writer :thumbnail
53
+
54
+ # The title of the course
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :title
57
+
58
+ # The timestamp of when the course was last updated
59
+ sig { returns(Time) }
60
+ attr_accessor :updated_at
61
+
62
+ # A course from the courses app
63
+ sig do
64
+ params(
65
+ id: String,
66
+ certificate_after_completion_enabled: T.nilable(T::Boolean),
67
+ created_at: Time,
68
+ description: T.nilable(String),
69
+ language: WhopSDK::Languages::OrSymbol,
70
+ require_completing_lessons_in_order: T::Boolean,
71
+ tagline: T.nilable(String),
72
+ thumbnail:
73
+ T.nilable(WhopSDK::Models::CourseListResponse::Thumbnail::OrHash),
74
+ title: T.nilable(String),
75
+ updated_at: Time
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # The ID of the course. Looks like cors_XXX
80
+ id:,
81
+ # Whether the course will award its students a PDF certificate after completing
82
+ # all lessons
83
+ certificate_after_completion_enabled:,
84
+ # The timestamp of when the course was created
85
+ created_at:,
86
+ # A short description of the course
87
+ description:,
88
+ # The language spoken in the video content of the course, used to generate closed
89
+ # captions in the right language
90
+ language:,
91
+ # Whether the course requires students to complete the previous lesson before
92
+ # moving on to the next one
93
+ require_completing_lessons_in_order:,
94
+ # A short tagline for the course. It is displayed under the course title in the UI
95
+ tagline:,
96
+ # The thumbnail for the course
97
+ thumbnail:,
98
+ # The title of the course
99
+ title:,
100
+ # The timestamp of when the course was last updated
101
+ updated_at:
102
+ )
103
+ end
104
+
105
+ sig do
106
+ override.returns(
107
+ {
108
+ id: String,
109
+ certificate_after_completion_enabled: T.nilable(T::Boolean),
110
+ created_at: Time,
111
+ description: T.nilable(String),
112
+ language: WhopSDK::Languages::TaggedSymbol,
113
+ require_completing_lessons_in_order: T::Boolean,
114
+ tagline: T.nilable(String),
115
+ thumbnail:
116
+ T.nilable(WhopSDK::Models::CourseListResponse::Thumbnail),
117
+ title: T.nilable(String),
118
+ updated_at: Time
119
+ }
120
+ )
121
+ end
122
+ def to_hash
123
+ end
124
+
125
+ class Thumbnail < WhopSDK::Internal::Type::BaseModel
126
+ OrHash =
127
+ T.type_alias do
128
+ T.any(
129
+ WhopSDK::Models::CourseListResponse::Thumbnail,
130
+ WhopSDK::Internal::AnyHash
131
+ )
132
+ end
133
+
134
+ # The ID of the attachment
135
+ sig { returns(String) }
136
+ attr_accessor :id
137
+
138
+ # The attachment's content type (e.g., image/jpg, video/mp4)
139
+ sig { returns(T.nilable(String)) }
140
+ attr_accessor :content_type
141
+
142
+ # The name of the file
143
+ sig { returns(T.nilable(String)) }
144
+ attr_accessor :filename
145
+
146
+ # This is the URL you use to render optimized attachments on the client. This
147
+ # should be used for apps.
148
+ sig { returns(T.nilable(String)) }
149
+ attr_accessor :optimized_url
150
+
151
+ # The original URL of the attachment, such as a direct link to S3. This should
152
+ # never be displayed on the client and always passed to an Imgproxy transformer.
153
+ sig { returns(T.nilable(String)) }
154
+ attr_accessor :source_url
155
+
156
+ # The thumbnail for the course
157
+ sig do
158
+ params(
159
+ id: String,
160
+ content_type: T.nilable(String),
161
+ filename: T.nilable(String),
162
+ optimized_url: T.nilable(String),
163
+ source_url: T.nilable(String)
164
+ ).returns(T.attached_class)
165
+ end
166
+ def self.new(
167
+ # The ID of the attachment
168
+ id:,
169
+ # The attachment's content type (e.g., image/jpg, video/mp4)
170
+ content_type:,
171
+ # The name of the file
172
+ filename:,
173
+ # This is the URL you use to render optimized attachments on the client. This
174
+ # should be used for apps.
175
+ optimized_url:,
176
+ # The original URL of the attachment, such as a direct link to S3. This should
177
+ # never be displayed on the client and always passed to an Imgproxy transformer.
178
+ source_url:
179
+ )
180
+ end
181
+
182
+ sig do
183
+ override.returns(
184
+ {
185
+ id: String,
186
+ content_type: T.nilable(String),
187
+ filename: T.nilable(String),
188
+ optimized_url: T.nilable(String),
189
+ source_url: T.nilable(String)
190
+ }
191
+ )
192
+ end
193
+ def to_hash
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseRetrieveParams < 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::CourseRetrieveParams, 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,293 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class CourseUpdateParams < 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::CourseUpdateParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # Whether the course will award its students a PDF certificate after completing
15
+ # all lessons
16
+ sig { returns(T.nilable(T::Boolean)) }
17
+ attr_accessor :certificate_after_completion_enabled
18
+
19
+ # The chapters and lessons to update
20
+ sig { returns(T.nilable(T::Array[WhopSDK::CourseUpdateParams::Chapter])) }
21
+ attr_accessor :chapters
22
+
23
+ # The cover image URL of the course
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :cover_image
26
+
27
+ # A short description of the course
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :description
30
+
31
+ # The available languages for a course
32
+ sig { returns(T.nilable(WhopSDK::Languages::OrSymbol)) }
33
+ attr_accessor :language
34
+
35
+ # Whether the course requires students to complete the previous lesson before
36
+ # moving on to the next one
37
+ sig { returns(T.nilable(T::Boolean)) }
38
+ attr_accessor :require_completing_lessons_in_order
39
+
40
+ # A short tagline for the course
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :tagline
43
+
44
+ # The thumbnail for the course in png, jpeg, or gif format
45
+ sig { returns(T.nilable(WhopSDK::CourseUpdateParams::Thumbnail)) }
46
+ attr_reader :thumbnail
47
+
48
+ sig do
49
+ params(
50
+ thumbnail: T.nilable(WhopSDK::CourseUpdateParams::Thumbnail::OrHash)
51
+ ).void
52
+ end
53
+ attr_writer :thumbnail
54
+
55
+ # The title of the course
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :title
58
+
59
+ sig do
60
+ params(
61
+ certificate_after_completion_enabled: T.nilable(T::Boolean),
62
+ chapters:
63
+ T.nilable(T::Array[WhopSDK::CourseUpdateParams::Chapter::OrHash]),
64
+ cover_image: T.nilable(String),
65
+ description: T.nilable(String),
66
+ language: T.nilable(WhopSDK::Languages::OrSymbol),
67
+ require_completing_lessons_in_order: T.nilable(T::Boolean),
68
+ tagline: T.nilable(String),
69
+ thumbnail: T.nilable(WhopSDK::CourseUpdateParams::Thumbnail::OrHash),
70
+ title: T.nilable(String),
71
+ request_options: WhopSDK::RequestOptions::OrHash
72
+ ).returns(T.attached_class)
73
+ end
74
+ def self.new(
75
+ # Whether the course will award its students a PDF certificate after completing
76
+ # all lessons
77
+ certificate_after_completion_enabled: nil,
78
+ # The chapters and lessons to update
79
+ chapters: nil,
80
+ # The cover image URL of the course
81
+ cover_image: nil,
82
+ # A short description of the course
83
+ description: nil,
84
+ # The available languages for a course
85
+ language: nil,
86
+ # Whether the course requires students to complete the previous lesson before
87
+ # moving on to the next one
88
+ require_completing_lessons_in_order: nil,
89
+ # A short tagline for the course
90
+ tagline: nil,
91
+ # The thumbnail for the course in png, jpeg, or gif format
92
+ thumbnail: nil,
93
+ # The title of the course
94
+ title: nil,
95
+ request_options: {}
96
+ )
97
+ end
98
+
99
+ sig do
100
+ override.returns(
101
+ {
102
+ certificate_after_completion_enabled: T.nilable(T::Boolean),
103
+ chapters: T.nilable(T::Array[WhopSDK::CourseUpdateParams::Chapter]),
104
+ cover_image: T.nilable(String),
105
+ description: T.nilable(String),
106
+ language: T.nilable(WhopSDK::Languages::OrSymbol),
107
+ require_completing_lessons_in_order: T.nilable(T::Boolean),
108
+ tagline: T.nilable(String),
109
+ thumbnail: T.nilable(WhopSDK::CourseUpdateParams::Thumbnail),
110
+ title: T.nilable(String),
111
+ request_options: WhopSDK::RequestOptions
112
+ }
113
+ )
114
+ end
115
+ def to_hash
116
+ end
117
+
118
+ class Chapter < WhopSDK::Internal::Type::BaseModel
119
+ OrHash =
120
+ T.type_alias do
121
+ T.any(
122
+ WhopSDK::CourseUpdateParams::Chapter,
123
+ WhopSDK::Internal::AnyHash
124
+ )
125
+ end
126
+
127
+ # The ID of the chapter to update
128
+ sig { returns(String) }
129
+ attr_accessor :id
130
+
131
+ # The order of the chapter within its course
132
+ sig { returns(Integer) }
133
+ attr_accessor :order
134
+
135
+ # The title of the chapter
136
+ sig { returns(String) }
137
+ attr_accessor :title
138
+
139
+ # The lessons to update within this chapter
140
+ sig do
141
+ returns(
142
+ T.nilable(T::Array[WhopSDK::CourseUpdateParams::Chapter::Lesson])
143
+ )
144
+ end
145
+ attr_accessor :lessons
146
+
147
+ # Input for updating a chapter while updating a course
148
+ sig do
149
+ params(
150
+ id: String,
151
+ order: Integer,
152
+ title: String,
153
+ lessons:
154
+ T.nilable(
155
+ T::Array[WhopSDK::CourseUpdateParams::Chapter::Lesson::OrHash]
156
+ )
157
+ ).returns(T.attached_class)
158
+ end
159
+ def self.new(
160
+ # The ID of the chapter to update
161
+ id:,
162
+ # The order of the chapter within its course
163
+ order:,
164
+ # The title of the chapter
165
+ title:,
166
+ # The lessons to update within this chapter
167
+ lessons: nil
168
+ )
169
+ end
170
+
171
+ sig do
172
+ override.returns(
173
+ {
174
+ id: String,
175
+ order: Integer,
176
+ title: String,
177
+ lessons:
178
+ T.nilable(
179
+ T::Array[WhopSDK::CourseUpdateParams::Chapter::Lesson]
180
+ )
181
+ }
182
+ )
183
+ end
184
+ def to_hash
185
+ end
186
+
187
+ class Lesson < WhopSDK::Internal::Type::BaseModel
188
+ OrHash =
189
+ T.type_alias do
190
+ T.any(
191
+ WhopSDK::CourseUpdateParams::Chapter::Lesson,
192
+ WhopSDK::Internal::AnyHash
193
+ )
194
+ end
195
+
196
+ # The ID of the lesson to update
197
+ sig { returns(String) }
198
+ attr_accessor :id
199
+
200
+ # The ID of the chapter this lesson belongs to (for moving between chapters)
201
+ sig { returns(String) }
202
+ attr_accessor :chapter_id
203
+
204
+ # The order of the lesson within its chapter
205
+ sig { returns(Integer) }
206
+ attr_accessor :order
207
+
208
+ # The title of the lesson
209
+ sig { returns(String) }
210
+ attr_accessor :title
211
+
212
+ # Input for updating a lesson while updating a course
213
+ sig do
214
+ params(
215
+ id: String,
216
+ chapter_id: String,
217
+ order: Integer,
218
+ title: String
219
+ ).returns(T.attached_class)
220
+ end
221
+ def self.new(
222
+ # The ID of the lesson to update
223
+ id:,
224
+ # The ID of the chapter this lesson belongs to (for moving between chapters)
225
+ chapter_id:,
226
+ # The order of the lesson within its chapter
227
+ order:,
228
+ # The title of the lesson
229
+ title:
230
+ )
231
+ end
232
+
233
+ sig do
234
+ override.returns(
235
+ { id: String, chapter_id: String, order: Integer, title: String }
236
+ )
237
+ end
238
+ def to_hash
239
+ end
240
+ end
241
+ end
242
+
243
+ class Thumbnail < WhopSDK::Internal::Type::BaseModel
244
+ OrHash =
245
+ T.type_alias do
246
+ T.any(
247
+ WhopSDK::CourseUpdateParams::Thumbnail,
248
+ WhopSDK::Internal::AnyHash
249
+ )
250
+ end
251
+
252
+ # The ID of an existing attachment object. Use this when updating a resource and
253
+ # keeping a subset of the attachments. Don't use this unless you know what you're
254
+ # doing.
255
+ sig { returns(T.nilable(String)) }
256
+ attr_accessor :id
257
+
258
+ # This ID should be used the first time you upload an attachment. It is the ID of
259
+ # the direct upload that was created when uploading the file to S3 via the
260
+ # mediaDirectUpload mutation.
261
+ sig { returns(T.nilable(String)) }
262
+ attr_accessor :direct_upload_id
263
+
264
+ # The thumbnail for the course in png, jpeg, or gif format
265
+ sig do
266
+ params(
267
+ id: T.nilable(String),
268
+ direct_upload_id: T.nilable(String)
269
+ ).returns(T.attached_class)
270
+ end
271
+ def self.new(
272
+ # The ID of an existing attachment object. Use this when updating a resource and
273
+ # keeping a subset of the attachments. Don't use this unless you know what you're
274
+ # doing.
275
+ id: nil,
276
+ # This ID should be used the first time you upload an attachment. It is the ID of
277
+ # the direct upload that was created when uploading the file to S3 via the
278
+ # mediaDirectUpload mutation.
279
+ direct_upload_id: nil
280
+ )
281
+ end
282
+
283
+ sig do
284
+ override.returns(
285
+ { id: T.nilable(String), direct_upload_id: T.nilable(String) }
286
+ )
287
+ end
288
+ def to_hash
289
+ end
290
+ end
291
+ end
292
+ end
293
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class ExperienceDuplicateParams < 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::ExperienceDuplicateParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # The name of the new experience
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :name
17
+
18
+ sig do
19
+ params(
20
+ name: T.nilable(String),
21
+ request_options: WhopSDK::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(
25
+ # The name of the new experience
26
+ name: nil,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ { name: T.nilable(String), request_options: WhopSDK::RequestOptions }
34
+ )
35
+ end
36
+ def to_hash
37
+ end
38
+ end
39
+ end
40
+ end
@@ -18,6 +18,10 @@ module WhopSDK
18
18
  sig { returns(T.nilable(String)) }
19
19
  attr_accessor :content
20
20
 
21
+ # The timestamp when the post was created
22
+ sig { returns(Time) }
23
+ attr_accessor :created_at
24
+
21
25
  # Whether the forum post has been edited
22
26
  sig { returns(T::Boolean) }
23
27
  attr_accessor :is_edited
@@ -42,6 +46,10 @@ module WhopSDK
42
46
  sig { returns(T.nilable(String)) }
43
47
  attr_accessor :title
44
48
 
49
+ # The timestamp when the post was last updated
50
+ sig { returns(Time) }
51
+ attr_accessor :updated_at
52
+
45
53
  # The user who created this forum post
46
54
  sig { returns(WhopSDK::ForumPost::User) }
47
55
  attr_reader :user
@@ -59,12 +67,14 @@ module WhopSDK
59
67
  id: String,
60
68
  comment_count: Integer,
61
69
  content: T.nilable(String),
70
+ created_at: Time,
62
71
  is_edited: T::Boolean,
63
72
  is_pinned: T::Boolean,
64
73
  is_poster_admin: T::Boolean,
65
74
  like_count: T.nilable(Integer),
66
75
  parent_id: T.nilable(String),
67
76
  title: T.nilable(String),
77
+ updated_at: Time,
68
78
  user: WhopSDK::ForumPost::User::OrHash,
69
79
  view_count: T.nilable(Integer)
70
80
  ).returns(T.attached_class)
@@ -76,6 +86,8 @@ module WhopSDK
76
86
  comment_count:,
77
87
  # The content of the forum post in Markdown format
78
88
  content:,
89
+ # The timestamp when the post was created
90
+ created_at:,
79
91
  # Whether the forum post has been edited
80
92
  is_edited:,
81
93
  # Whether this forum post is pinned
@@ -88,6 +100,8 @@ module WhopSDK
88
100
  parent_id:,
89
101
  # The title of the forum post
90
102
  title:,
103
+ # The timestamp when the post was last updated
104
+ updated_at:,
91
105
  # The user who created this forum post
92
106
  user:,
93
107
  # The number of times this message has been viewed
@@ -101,12 +115,14 @@ module WhopSDK
101
115
  id: String,
102
116
  comment_count: Integer,
103
117
  content: T.nilable(String),
118
+ created_at: Time,
104
119
  is_edited: T::Boolean,
105
120
  is_pinned: T::Boolean,
106
121
  is_poster_admin: T::Boolean,
107
122
  like_count: T.nilable(Integer),
108
123
  parent_id: T.nilable(String),
109
124
  title: T.nilable(String),
125
+ updated_at: Time,
110
126
  user: WhopSDK::ForumPost::User,
111
127
  view_count: T.nilable(Integer)
112
128
  }
@@ -23,6 +23,10 @@ module WhopSDK
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_accessor :content
25
25
 
26
+ # The timestamp when the post was created
27
+ sig { returns(Time) }
28
+ attr_accessor :created_at
29
+
26
30
  # Whether the forum post has been edited
27
31
  sig { returns(T::Boolean) }
28
32
  attr_accessor :is_edited
@@ -47,6 +51,10 @@ module WhopSDK
47
51
  sig { returns(T.nilable(String)) }
48
52
  attr_accessor :title
49
53
 
54
+ # The timestamp when the post was last updated
55
+ sig { returns(Time) }
56
+ attr_accessor :updated_at
57
+
50
58
  # The user who created this forum post
51
59
  sig { returns(WhopSDK::Models::ForumPostListResponse::User) }
52
60
  attr_reader :user
@@ -66,12 +74,14 @@ module WhopSDK
66
74
  id: String,
67
75
  comment_count: Integer,
68
76
  content: T.nilable(String),
77
+ created_at: Time,
69
78
  is_edited: T::Boolean,
70
79
  is_pinned: T::Boolean,
71
80
  is_poster_admin: T::Boolean,
72
81
  like_count: T.nilable(Integer),
73
82
  parent_id: T.nilable(String),
74
83
  title: T.nilable(String),
84
+ updated_at: Time,
75
85
  user: WhopSDK::Models::ForumPostListResponse::User::OrHash,
76
86
  view_count: T.nilable(Integer)
77
87
  ).returns(T.attached_class)
@@ -83,6 +93,8 @@ module WhopSDK
83
93
  comment_count:,
84
94
  # The content of the forum post in Markdown format
85
95
  content:,
96
+ # The timestamp when the post was created
97
+ created_at:,
86
98
  # Whether the forum post has been edited
87
99
  is_edited:,
88
100
  # Whether this forum post is pinned
@@ -95,6 +107,8 @@ module WhopSDK
95
107
  parent_id:,
96
108
  # The title of the forum post
97
109
  title:,
110
+ # The timestamp when the post was last updated
111
+ updated_at:,
98
112
  # The user who created this forum post
99
113
  user:,
100
114
  # The number of times this message has been viewed
@@ -108,12 +122,14 @@ module WhopSDK
108
122
  id: String,
109
123
  comment_count: Integer,
110
124
  content: T.nilable(String),
125
+ created_at: Time,
111
126
  is_edited: T::Boolean,
112
127
  is_pinned: T::Boolean,
113
128
  is_poster_admin: T::Boolean,
114
129
  like_count: T.nilable(Integer),
115
130
  parent_id: T.nilable(String),
116
131
  title: T.nilable(String),
132
+ updated_at: Time,
117
133
  user: WhopSDK::Models::ForumPostListResponse::User,
118
134
  view_count: T.nilable(Integer)
119
135
  }