mb-apimatic-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +139 -0
  4. data/bin/console +15 -0
  5. data/lib/mindbody_public_api/api_helper.rb +10 -0
  6. data/lib/mindbody_public_api/client.rb +138 -0
  7. data/lib/mindbody_public_api/configuration.rb +181 -0
  8. data/lib/mindbody_public_api/controllers/appointment_controller.rb +746 -0
  9. data/lib/mindbody_public_api/controllers/base_controller.rb +60 -0
  10. data/lib/mindbody_public_api/controllers/class_controller.rb +826 -0
  11. data/lib/mindbody_public_api/controllers/client_controller.rb +2106 -0
  12. data/lib/mindbody_public_api/controllers/cross_site_controller.rb +43 -0
  13. data/lib/mindbody_public_api/controllers/enrollment_controller.rb +188 -0
  14. data/lib/mindbody_public_api/controllers/payroll_controller.rb +290 -0
  15. data/lib/mindbody_public_api/controllers/pick_a_spot_controller.rb +213 -0
  16. data/lib/mindbody_public_api/controllers/pricing_option_controller.rb +41 -0
  17. data/lib/mindbody_public_api/controllers/sale_controller.rb +1226 -0
  18. data/lib/mindbody_public_api/controllers/site_controller.rb +815 -0
  19. data/lib/mindbody_public_api/controllers/staff_controller.rb +408 -0
  20. data/lib/mindbody_public_api/controllers/user_token_controller.rb +92 -0
  21. data/lib/mindbody_public_api/exceptions/api_exception.rb +21 -0
  22. data/lib/mindbody_public_api/http/auth/custom_header_authentication.rb +52 -0
  23. data/lib/mindbody_public_api/http/http_call_back.rb +10 -0
  24. data/lib/mindbody_public_api/http/http_method_enum.rb +10 -0
  25. data/lib/mindbody_public_api/http/http_request.rb +10 -0
  26. data/lib/mindbody_public_api/http/http_response.rb +10 -0
  27. data/lib/mindbody_public_api/http/proxy_settings.rb +22 -0
  28. data/lib/mindbody_public_api/models/action10_enum.rb +48 -0
  29. data/lib/mindbody_public_api/models/action1_enum.rb +48 -0
  30. data/lib/mindbody_public_api/models/action8_enum.rb +48 -0
  31. data/lib/mindbody_public_api/models/action_enum.rb +48 -0
  32. data/lib/mindbody_public_api/models/add_appointment_add_on_request.rb +108 -0
  33. data/lib/mindbody_public_api/models/add_appointment_add_on_response.rb +74 -0
  34. data/lib/mindbody_public_api/models/add_appointment_outcome.rb +83 -0
  35. data/lib/mindbody_public_api/models/add_appointment_request.rb +319 -0
  36. data/lib/mindbody_public_api/models/add_appointment_response.rb +62 -0
  37. data/lib/mindbody_public_api/models/add_arrival_request.rb +113 -0
  38. data/lib/mindbody_public_api/models/add_arrival_response.rb +72 -0
  39. data/lib/mindbody_public_api/models/add_availabilities_request.rb +187 -0
  40. data/lib/mindbody_public_api/models/add_availabilities_response.rb +89 -0
  41. data/lib/mindbody_public_api/models/add_class_enrollment_schedule_request.rb +351 -0
  42. data/lib/mindbody_public_api/models/add_client_direct_debit_info_request.rb +119 -0
  43. data/lib/mindbody_public_api/models/add_client_direct_debit_info_response.rb +108 -0
  44. data/lib/mindbody_public_api/models/add_client_request.rb +854 -0
  45. data/lib/mindbody_public_api/models/add_client_response.rb +62 -0
  46. data/lib/mindbody_public_api/models/add_client_to_class_request.rb +199 -0
  47. data/lib/mindbody_public_api/models/add_client_to_class_response.rb +62 -0
  48. data/lib/mindbody_public_api/models/add_client_to_class_visit.rb +353 -0
  49. data/lib/mindbody_public_api/models/add_client_to_enrollment_request.rb +165 -0
  50. data/lib/mindbody_public_api/models/add_contact_log_request.rb +175 -0
  51. data/lib/mindbody_public_api/models/add_contact_log_type.rb +71 -0
  52. data/lib/mindbody_public_api/models/add_formula_note_request.rb +80 -0
  53. data/lib/mindbody_public_api/models/add_multiple_appointments_request.rb +71 -0
  54. data/lib/mindbody_public_api/models/add_multiple_appointments_response.rb +71 -0
  55. data/lib/mindbody_public_api/models/add_on_small.rb +90 -0
  56. data/lib/mindbody_public_api/models/add_on_small1.rb +90 -0
  57. data/lib/mindbody_public_api/models/add_promo_code_request.rb +201 -0
  58. data/lib/mindbody_public_api/models/add_promo_code_response.rb +62 -0
  59. data/lib/mindbody_public_api/models/add_site_client_index_request.rb +163 -0
  60. data/lib/mindbody_public_api/models/add_site_client_index_response.rb +175 -0
  61. data/lib/mindbody_public_api/models/add_staff_availability_request.rb +170 -0
  62. data/lib/mindbody_public_api/models/add_staff_request.rb +357 -0
  63. data/lib/mindbody_public_api/models/add_staff_response.rb +62 -0
  64. data/lib/mindbody_public_api/models/allowed_permission_enum.rb +764 -0
  65. data/lib/mindbody_public_api/models/alternative_payment_method.rb +71 -0
  66. data/lib/mindbody_public_api/models/amenity.rb +71 -0
  67. data/lib/mindbody_public_api/models/amenity1.rb +71 -0
  68. data/lib/mindbody_public_api/models/api_error.rb +71 -0
  69. data/lib/mindbody_public_api/models/api_error1.rb +76 -0
  70. data/lib/mindbody_public_api/models/applicable_item.rb +86 -0
  71. data/lib/mindbody_public_api/models/appointment.rb +351 -0
  72. data/lib/mindbody_public_api/models/appointment1.rb +322 -0
  73. data/lib/mindbody_public_api/models/appointment_add_on.rb +103 -0
  74. data/lib/mindbody_public_api/models/appointment_gender_preference1_enum.rb +41 -0
  75. data/lib/mindbody_public_api/models/appointment_gender_preference_enum.rb +44 -0
  76. data/lib/mindbody_public_api/models/appointment_option.rb +91 -0
  77. data/lib/mindbody_public_api/models/appointment_staff.rb +92 -0
  78. data/lib/mindbody_public_api/models/appointment_status_enum.rb +64 -0
  79. data/lib/mindbody_public_api/models/assign_staff_session_type_request.rb +146 -0
  80. data/lib/mindbody_public_api/models/assign_staff_session_type_response.rb +138 -0
  81. data/lib/mindbody_public_api/models/assigned_client_index.rb +71 -0
  82. data/lib/mindbody_public_api/models/autopay_schedule.rb +93 -0
  83. data/lib/mindbody_public_api/models/autopay_status_enum.rb +40 -0
  84. data/lib/mindbody_public_api/models/availability.rb +233 -0
  85. data/lib/mindbody_public_api/models/availability1.rb +228 -0
  86. data/lib/mindbody_public_api/models/base_model.rb +110 -0
  87. data/lib/mindbody_public_api/models/booking_status_enum.rb +40 -0
  88. data/lib/mindbody_public_api/models/booking_window.rb +130 -0
  89. data/lib/mindbody_public_api/models/cancel_single_class_request.rb +98 -0
  90. data/lib/mindbody_public_api/models/cancel_single_class_response.rb +63 -0
  91. data/lib/mindbody_public_api/models/cart_item.rb +147 -0
  92. data/lib/mindbody_public_api/models/category.rb +192 -0
  93. data/lib/mindbody_public_api/models/checkout_alternative_payment_info.rb +72 -0
  94. data/lib/mindbody_public_api/models/checkout_appointment_booking_request.rb +155 -0
  95. data/lib/mindbody_public_api/models/checkout_item.rb +77 -0
  96. data/lib/mindbody_public_api/models/checkout_item_wrapper.rb +183 -0
  97. data/lib/mindbody_public_api/models/checkout_payment_info.rb +101 -0
  98. data/lib/mindbody_public_api/models/checkout_shopping_cart_request.rb +339 -0
  99. data/lib/mindbody_public_api/models/checkout_shopping_cart_response.rb +119 -0
  100. data/lib/mindbody_public_api/models/class_client_detail.rb +68 -0
  101. data/lib/mindbody_public_api/models/class_description.rb +215 -0
  102. data/lib/mindbody_public_api/models/class_schedule.rb +365 -0
  103. data/lib/mindbody_public_api/models/client.rb +832 -0
  104. data/lib/mindbody_public_api/models/client_arrival.rb +95 -0
  105. data/lib/mindbody_public_api/models/client_contract.rb +353 -0
  106. data/lib/mindbody_public_api/models/client_credit_card.rb +153 -0
  107. data/lib/mindbody_public_api/models/client_document.rb +96 -0
  108. data/lib/mindbody_public_api/models/client_duplicate.rb +109 -0
  109. data/lib/mindbody_public_api/models/client_index.rb +127 -0
  110. data/lib/mindbody_public_api/models/client_index_value.rb +82 -0
  111. data/lib/mindbody_public_api/models/client_membership.rb +272 -0
  112. data/lib/mindbody_public_api/models/client_memberships.rb +91 -0
  113. data/lib/mindbody_public_api/models/client_purchase_record.rb +142 -0
  114. data/lib/mindbody_public_api/models/client_relationship.rb +109 -0
  115. data/lib/mindbody_public_api/models/client_reward_transaction.rb +132 -0
  116. data/lib/mindbody_public_api/models/client_service.rb +228 -0
  117. data/lib/mindbody_public_api/models/client_suspension_info.rb +86 -0
  118. data/lib/mindbody_public_api/models/client_with_suspension_info.rb +844 -0
  119. data/lib/mindbody_public_api/models/color.rb +71 -0
  120. data/lib/mindbody_public_api/models/commission_detail.rb +83 -0
  121. data/lib/mindbody_public_api/models/commission_payroll_purchase_event.rb +143 -0
  122. data/lib/mindbody_public_api/models/complete_checkout_shopping_cart_using_alternative_payments_request.rb +86 -0
  123. data/lib/mindbody_public_api/models/contact_log.rb +198 -0
  124. data/lib/mindbody_public_api/models/contact_log_comment.rb +101 -0
  125. data/lib/mindbody_public_api/models/contact_log_sub_type.rb +71 -0
  126. data/lib/mindbody_public_api/models/contact_log_type.rb +91 -0
  127. data/lib/mindbody_public_api/models/content_format_enum.rb +40 -0
  128. data/lib/mindbody_public_api/models/contract.rb +636 -0
  129. data/lib/mindbody_public_api/models/contract_item.rb +121 -0
  130. data/lib/mindbody_public_api/models/copy_credit_card_request.rb +120 -0
  131. data/lib/mindbody_public_api/models/copy_credit_card_response.rb +72 -0
  132. data/lib/mindbody_public_api/models/copy_credit_card_response_client.rb +102 -0
  133. data/lib/mindbody_public_api/models/course.rb +167 -0
  134. data/lib/mindbody_public_api/models/create_reservation_response.rb +73 -0
  135. data/lib/mindbody_public_api/models/credit_card_info.rb +168 -0
  136. data/lib/mindbody_public_api/models/cross_regional_client_association.rb +92 -0
  137. data/lib/mindbody_public_api/models/custom_client_field.rb +81 -0
  138. data/lib/mindbody_public_api/models/custom_client_field_value.rb +90 -0
  139. data/lib/mindbody_public_api/models/custom_payment_method.rb +71 -0
  140. data/lib/mindbody_public_api/models/days_of_week_enum.rb +56 -0
  141. data/lib/mindbody_public_api/models/days_valid_enum.rb +56 -0
  142. data/lib/mindbody_public_api/models/deactivate_promo_code_request.rb +60 -0
  143. data/lib/mindbody_public_api/models/delete_availability_request.rb +75 -0
  144. data/lib/mindbody_public_api/models/delete_client_formula_note_request.rb +90 -0
  145. data/lib/mindbody_public_api/models/delete_contact_log_request.rb +82 -0
  146. data/lib/mindbody_public_api/models/denied_permission_enum.rb +764 -0
  147. data/lib/mindbody_public_api/models/direct_debit_info.rb +97 -0
  148. data/lib/mindbody_public_api/models/discount.rb +71 -0
  149. data/lib/mindbody_public_api/models/formula_note_response.rb +172 -0
  150. data/lib/mindbody_public_api/models/frequency_type_enum.rb +40 -0
  151. data/lib/mindbody_public_api/models/gender_option.rb +93 -0
  152. data/lib/mindbody_public_api/models/gender_preference_enum.rb +41 -0
  153. data/lib/mindbody_public_api/models/get_activation_code_response.rb +76 -0
  154. data/lib/mindbody_public_api/models/get_active_client_memberships_request.rb +163 -0
  155. data/lib/mindbody_public_api/models/get_active_client_memberships_response.rb +83 -0
  156. data/lib/mindbody_public_api/models/get_active_clients_memberships_request.rb +151 -0
  157. data/lib/mindbody_public_api/models/get_active_clients_memberships_response.rb +83 -0
  158. data/lib/mindbody_public_api/models/get_active_session_times_request.rb +136 -0
  159. data/lib/mindbody_public_api/models/get_active_session_times_response.rb +81 -0
  160. data/lib/mindbody_public_api/models/get_add_ons_request.rb +81 -0
  161. data/lib/mindbody_public_api/models/get_add_ons_response.rb +82 -0
  162. data/lib/mindbody_public_api/models/get_alternative_payment_methods_request.rb +72 -0
  163. data/lib/mindbody_public_api/models/get_alternative_payment_methods_response.rb +71 -0
  164. data/lib/mindbody_public_api/models/get_appointment_options_response.rb +71 -0
  165. data/lib/mindbody_public_api/models/get_available_dates_request.rb +121 -0
  166. data/lib/mindbody_public_api/models/get_available_dates_response.rb +77 -0
  167. data/lib/mindbody_public_api/models/get_bookable_items_request.rb +190 -0
  168. data/lib/mindbody_public_api/models/get_bookable_items_response.rb +83 -0
  169. data/lib/mindbody_public_api/models/get_categories_request.rb +118 -0
  170. data/lib/mindbody_public_api/models/get_categories_response.rb +83 -0
  171. data/lib/mindbody_public_api/models/get_class_descriptions_request.rb +168 -0
  172. data/lib/mindbody_public_api/models/get_class_descriptions_response.rb +83 -0
  173. data/lib/mindbody_public_api/models/get_class_schedules_request.rb +172 -0
  174. data/lib/mindbody_public_api/models/get_class_schedules_response.rb +83 -0
  175. data/lib/mindbody_public_api/models/get_class_visits_request.rb +100 -0
  176. data/lib/mindbody_public_api/models/get_class_visits_response.rb +63 -0
  177. data/lib/mindbody_public_api/models/get_classes_request.rb +281 -0
  178. data/lib/mindbody_public_api/models/get_classes_response.rb +82 -0
  179. data/lib/mindbody_public_api/models/get_client_account_balances_request.rb +110 -0
  180. data/lib/mindbody_public_api/models/get_client_account_balances_response.rb +82 -0
  181. data/lib/mindbody_public_api/models/get_client_complete_info_request.rb +239 -0
  182. data/lib/mindbody_public_api/models/get_client_complete_info_response.rb +140 -0
  183. data/lib/mindbody_public_api/models/get_client_contracts_request.rb +127 -0
  184. data/lib/mindbody_public_api/models/get_client_contracts_response.rb +82 -0
  185. data/lib/mindbody_public_api/models/get_client_duplicates_request.rb +101 -0
  186. data/lib/mindbody_public_api/models/get_client_duplicates_response.rb +83 -0
  187. data/lib/mindbody_public_api/models/get_client_formula_notes_request.rb +93 -0
  188. data/lib/mindbody_public_api/models/get_client_formula_notes_response.rb +85 -0
  189. data/lib/mindbody_public_api/models/get_client_indexes_request.rb +64 -0
  190. data/lib/mindbody_public_api/models/get_client_indexes_response.rb +71 -0
  191. data/lib/mindbody_public_api/models/get_client_purchases_request.rb +141 -0
  192. data/lib/mindbody_public_api/models/get_client_purchases_response.rb +82 -0
  193. data/lib/mindbody_public_api/models/get_client_referral_types_request.rb +66 -0
  194. data/lib/mindbody_public_api/models/get_client_referral_types_response.rb +62 -0
  195. data/lib/mindbody_public_api/models/get_client_rewards_request.rb +119 -0
  196. data/lib/mindbody_public_api/models/get_client_rewards_response.rb +94 -0
  197. data/lib/mindbody_public_api/models/get_client_schedule_request.rb +180 -0
  198. data/lib/mindbody_public_api/models/get_client_schedule_response.rb +82 -0
  199. data/lib/mindbody_public_api/models/get_client_services_request.rb +356 -0
  200. data/lib/mindbody_public_api/models/get_client_services_response.rb +83 -0
  201. data/lib/mindbody_public_api/models/get_client_visits_request.rb +180 -0
  202. data/lib/mindbody_public_api/models/get_client_visits_response.rb +82 -0
  203. data/lib/mindbody_public_api/models/get_clients_request.rb +157 -0
  204. data/lib/mindbody_public_api/models/get_clients_response.rb +82 -0
  205. data/lib/mindbody_public_api/models/get_commissions_request.rb +144 -0
  206. data/lib/mindbody_public_api/models/get_commissions_response.rb +84 -0
  207. data/lib/mindbody_public_api/models/get_contact_log_types_request.rb +84 -0
  208. data/lib/mindbody_public_api/models/get_contact_log_types_response.rb +83 -0
  209. data/lib/mindbody_public_api/models/get_contact_logs_request.rb +167 -0
  210. data/lib/mindbody_public_api/models/get_contact_logs_response.rb +83 -0
  211. data/lib/mindbody_public_api/models/get_contracts_request.rb +128 -0
  212. data/lib/mindbody_public_api/models/get_contracts_response.rb +82 -0
  213. data/lib/mindbody_public_api/models/get_courses_reponse.rb +82 -0
  214. data/lib/mindbody_public_api/models/get_courses_request.rb +161 -0
  215. data/lib/mindbody_public_api/models/get_cross_regional_client_associations_request.rb +152 -0
  216. data/lib/mindbody_public_api/models/get_cross_regional_client_associations_response.rb +88 -0
  217. data/lib/mindbody_public_api/models/get_custom_client_fields_request.rb +71 -0
  218. data/lib/mindbody_public_api/models/get_custom_client_fields_response.rb +83 -0
  219. data/lib/mindbody_public_api/models/get_custom_payment_methods_request.rb +71 -0
  220. data/lib/mindbody_public_api/models/get_custom_payment_methods_response.rb +83 -0
  221. data/lib/mindbody_public_api/models/get_enrollments_request.rb +172 -0
  222. data/lib/mindbody_public_api/models/get_enrollments_response.rb +83 -0
  223. data/lib/mindbody_public_api/models/get_genders_response.rb +71 -0
  224. data/lib/mindbody_public_api/models/get_gift_card_balance_response.rb +73 -0
  225. data/lib/mindbody_public_api/models/get_gift_card_response.rb +82 -0
  226. data/lib/mindbody_public_api/models/get_gift_cards_request.rb +119 -0
  227. data/lib/mindbody_public_api/models/get_liability_waiver_response.rb +63 -0
  228. data/lib/mindbody_public_api/models/get_locations_request.rb +71 -0
  229. data/lib/mindbody_public_api/models/get_locations_response.rb +82 -0
  230. data/lib/mindbody_public_api/models/get_memberships_request.rb +63 -0
  231. data/lib/mindbody_public_api/models/get_memberships_response.rb +71 -0
  232. data/lib/mindbody_public_api/models/get_mobile_providers_request.rb +65 -0
  233. data/lib/mindbody_public_api/models/get_mobile_providers_response.rb +71 -0
  234. data/lib/mindbody_public_api/models/get_packages_request.rb +106 -0
  235. data/lib/mindbody_public_api/models/get_packages_response.rb +82 -0
  236. data/lib/mindbody_public_api/models/get_payment_types_request.rb +64 -0
  237. data/lib/mindbody_public_api/models/get_payment_types_response.rb +71 -0
  238. data/lib/mindbody_public_api/models/get_pick_a_spot_class_response.rb +92 -0
  239. data/lib/mindbody_public_api/models/get_products_inventory_request.rb +105 -0
  240. data/lib/mindbody_public_api/models/get_products_inventory_response.rb +83 -0
  241. data/lib/mindbody_public_api/models/get_products_request.rb +153 -0
  242. data/lib/mindbody_public_api/models/get_products_response.rb +82 -0
  243. data/lib/mindbody_public_api/models/get_programs_request.rb +112 -0
  244. data/lib/mindbody_public_api/models/get_programs_response.rb +82 -0
  245. data/lib/mindbody_public_api/models/get_promo_codes_request.rb +152 -0
  246. data/lib/mindbody_public_api/models/get_promo_codes_response.rb +83 -0
  247. data/lib/mindbody_public_api/models/get_prospect_stages_request.rb +65 -0
  248. data/lib/mindbody_public_api/models/get_prospect_stages_response.rb +71 -0
  249. data/lib/mindbody_public_api/models/get_relationships_request.rb +83 -0
  250. data/lib/mindbody_public_api/models/get_relationships_response.rb +83 -0
  251. data/lib/mindbody_public_api/models/get_required_client_fields_response.rb +64 -0
  252. data/lib/mindbody_public_api/models/get_reservation_response.rb +93 -0
  253. data/lib/mindbody_public_api/models/get_resource_availabilities_request.rb +149 -0
  254. data/lib/mindbody_public_api/models/get_resources_request.rb +124 -0
  255. data/lib/mindbody_public_api/models/get_resources_response.rb +71 -0
  256. data/lib/mindbody_public_api/models/get_sales_reps_request.rb +95 -0
  257. data/lib/mindbody_public_api/models/get_sales_reps_response.rb +82 -0
  258. data/lib/mindbody_public_api/models/get_sales_request.rb +134 -0
  259. data/lib/mindbody_public_api/models/get_sales_response.rb +83 -0
  260. data/lib/mindbody_public_api/models/get_schedule_items_request.rb +145 -0
  261. data/lib/mindbody_public_api/models/get_schedule_items_response.rb +83 -0
  262. data/lib/mindbody_public_api/models/get_scheduled_service_earnings_request.rb +172 -0
  263. data/lib/mindbody_public_api/models/get_scheduled_service_earnings_response.rb +87 -0
  264. data/lib/mindbody_public_api/models/get_semesters_request.rb +132 -0
  265. data/lib/mindbody_public_api/models/get_semesters_response.rb +83 -0
  266. data/lib/mindbody_public_api/models/get_services_request.rb +221 -0
  267. data/lib/mindbody_public_api/models/get_services_response.rb +82 -0
  268. data/lib/mindbody_public_api/models/get_session_types_request.rb +95 -0
  269. data/lib/mindbody_public_api/models/get_session_types_response.rb +83 -0
  270. data/lib/mindbody_public_api/models/get_sites_request.rb +111 -0
  271. data/lib/mindbody_public_api/models/get_sites_response.rb +82 -0
  272. data/lib/mindbody_public_api/models/get_staff_appointments_request.rb +173 -0
  273. data/lib/mindbody_public_api/models/get_staff_appointments_response.rb +83 -0
  274. data/lib/mindbody_public_api/models/get_staff_image_url_request.rb +62 -0
  275. data/lib/mindbody_public_api/models/get_staff_image_url_response.rb +73 -0
  276. data/lib/mindbody_public_api/models/get_staff_permissions_request.rb +60 -0
  277. data/lib/mindbody_public_api/models/get_staff_permissions_response.rb +62 -0
  278. data/lib/mindbody_public_api/models/get_staff_request.rb +144 -0
  279. data/lib/mindbody_public_api/models/get_staff_response.rb +84 -0
  280. data/lib/mindbody_public_api/models/get_staff_session_types_request.rb +104 -0
  281. data/lib/mindbody_public_api/models/get_staff_session_types_response.rb +83 -0
  282. data/lib/mindbody_public_api/models/get_time_cards_request.rb +144 -0
  283. data/lib/mindbody_public_api/models/get_time_cards_response.rb +82 -0
  284. data/lib/mindbody_public_api/models/get_tips_request.rb +144 -0
  285. data/lib/mindbody_public_api/models/get_tips_response.rb +83 -0
  286. data/lib/mindbody_public_api/models/get_transactions_request.rb +173 -0
  287. data/lib/mindbody_public_api/models/get_transactions_response.rb +84 -0
  288. data/lib/mindbody_public_api/models/get_unavailabilities_request.rb +120 -0
  289. data/lib/mindbody_public_api/models/get_unavailabilities_response.rb +83 -0
  290. data/lib/mindbody_public_api/models/get_waitlist_entries_request.rb +144 -0
  291. data/lib/mindbody_public_api/models/get_waitlist_entries_response.rb +83 -0
  292. data/lib/mindbody_public_api/models/gift_card.rb +191 -0
  293. data/lib/mindbody_public_api/models/gift_card_layout.rb +82 -0
  294. data/lib/mindbody_public_api/models/http_content.rb +71 -0
  295. data/lib/mindbody_public_api/models/initiate_checkout_shopping_cart_using_alternative_payments_request.rb +265 -0
  296. data/lib/mindbody_public_api/models/initiate_purchase_contract_request.rb +184 -0
  297. data/lib/mindbody_public_api/models/issue_request.rb +71 -0
  298. data/lib/mindbody_public_api/models/issue_response.rb +101 -0
  299. data/lib/mindbody_public_api/models/lead_channel.rb +104 -0
  300. data/lib/mindbody_public_api/models/level.rb +81 -0
  301. data/lib/mindbody_public_api/models/liability.rb +102 -0
  302. data/lib/mindbody_public_api/models/location.rb +331 -0
  303. data/lib/mindbody_public_api/models/location1.rb +639 -0
  304. data/lib/mindbody_public_api/models/m0_culture_neutral_public_key_token_b77a5c561934e089.rb +71 -0
  305. data/lib/mindbody_public_api/models/mclass.rb +430 -0
  306. data/lib/mindbody_public_api/models/membership.rb +255 -0
  307. data/lib/mindbody_public_api/models/membership_type_restriction.rb +71 -0
  308. data/lib/mindbody_public_api/models/merge_clients_request.rb +75 -0
  309. data/lib/mindbody_public_api/models/minimum_commitment_unit_enum.rb +40 -0
  310. data/lib/mindbody_public_api/models/mobile_provider.rb +93 -0
  311. data/lib/mindbody_public_api/models/package.rb +131 -0
  312. data/lib/mindbody_public_api/models/pagination.rb +95 -0
  313. data/lib/mindbody_public_api/models/pagination_response.rb +95 -0
  314. data/lib/mindbody_public_api/models/payment_method_enum.rb +44 -0
  315. data/lib/mindbody_public_api/models/payment_processing_failure.rb +88 -0
  316. data/lib/mindbody_public_api/models/payment_type.rb +93 -0
  317. data/lib/mindbody_public_api/models/pick_a_spot_class.rb +193 -0
  318. data/lib/mindbody_public_api/models/pricing_relationships.rb +71 -0
  319. data/lib/mindbody_public_api/models/product.rb +267 -0
  320. data/lib/mindbody_public_api/models/products_inventory.rb +173 -0
  321. data/lib/mindbody_public_api/models/program.rb +129 -0
  322. data/lib/mindbody_public_api/models/program1.rb +150 -0
  323. data/lib/mindbody_public_api/models/program_membership.rb +71 -0
  324. data/lib/mindbody_public_api/models/promo_code.rb +233 -0
  325. data/lib/mindbody_public_api/models/prospect_stage.rb +84 -0
  326. data/lib/mindbody_public_api/models/public_display1_enum.rb +42 -0
  327. data/lib/mindbody_public_api/models/public_display_enum.rb +41 -0
  328. data/lib/mindbody_public_api/models/purchase_account_credit_request.rb +154 -0
  329. data/lib/mindbody_public_api/models/purchase_account_credit_response.rb +118 -0
  330. data/lib/mindbody_public_api/models/purchase_contract_request.rb +324 -0
  331. data/lib/mindbody_public_api/models/purchase_contract_response.rb +141 -0
  332. data/lib/mindbody_public_api/models/purchase_contract_response_totals.rb +92 -0
  333. data/lib/mindbody_public_api/models/purchase_gift_card_request.rb +273 -0
  334. data/lib/mindbody_public_api/models/purchase_gift_card_response.rb +183 -0
  335. data/lib/mindbody_public_api/models/purchased_item.rb +337 -0
  336. data/lib/mindbody_public_api/models/relationship.rb +85 -0
  337. data/lib/mindbody_public_api/models/remove_client_from_class_request.rb +142 -0
  338. data/lib/mindbody_public_api/models/remove_client_from_class_response.rb +63 -0
  339. data/lib/mindbody_public_api/models/remove_clients_from_classes_request.rb +140 -0
  340. data/lib/mindbody_public_api/models/remove_clients_from_classes_response.rb +102 -0
  341. data/lib/mindbody_public_api/models/remove_from_waitlist_request.rb +61 -0
  342. data/lib/mindbody_public_api/models/request_schedule_type_enum.rb +56 -0
  343. data/lib/mindbody_public_api/models/reservation.rb +158 -0
  344. data/lib/mindbody_public_api/models/resource.rb +71 -0
  345. data/lib/mindbody_public_api/models/resource1.rb +124 -0
  346. data/lib/mindbody_public_api/models/resource_availability.rb +100 -0
  347. data/lib/mindbody_public_api/models/resource_availability1.rb +124 -0
  348. data/lib/mindbody_public_api/models/resource_slim.rb +71 -0
  349. data/lib/mindbody_public_api/models/response_details.rb +82 -0
  350. data/lib/mindbody_public_api/models/return_sale_request.rb +71 -0
  351. data/lib/mindbody_public_api/models/return_sale_response.rb +82 -0
  352. data/lib/mindbody_public_api/models/sale.rb +210 -0
  353. data/lib/mindbody_public_api/models/sale_payment.rb +114 -0
  354. data/lib/mindbody_public_api/models/sales_rep.rb +107 -0
  355. data/lib/mindbody_public_api/models/sales_rep_response.rb +93 -0
  356. data/lib/mindbody_public_api/models/schedule_type1_enum.rb +57 -0
  357. data/lib/mindbody_public_api/models/schedule_type2_enum.rb +56 -0
  358. data/lib/mindbody_public_api/models/schedule_type3_enum.rb +57 -0
  359. data/lib/mindbody_public_api/models/schedule_type4_enum.rb +56 -0
  360. data/lib/mindbody_public_api/models/schedule_type_enum.rb +57 -0
  361. data/lib/mindbody_public_api/models/scheduled_service_earnings_event.rb +117 -0
  362. data/lib/mindbody_public_api/models/scheduled_service_type_enum.rb +44 -0
  363. data/lib/mindbody_public_api/models/semester.rb +167 -0
  364. data/lib/mindbody_public_api/models/send_auto_email_request.rb +71 -0
  365. data/lib/mindbody_public_api/models/send_password_reset_email_request.rb +81 -0
  366. data/lib/mindbody_public_api/models/service.rb +366 -0
  367. data/lib/mindbody_public_api/models/service_tag.rb +72 -0
  368. data/lib/mindbody_public_api/models/session_type.rb +198 -0
  369. data/lib/mindbody_public_api/models/session_type1.rb +204 -0
  370. data/lib/mindbody_public_api/models/shopping_cart.rb +151 -0
  371. data/lib/mindbody_public_api/models/site.rb +347 -0
  372. data/lib/mindbody_public_api/models/size.rb +71 -0
  373. data/lib/mindbody_public_api/models/spot.rb +87 -0
  374. data/lib/mindbody_public_api/models/staff.rb +501 -0
  375. data/lib/mindbody_public_api/models/staff1.rb +588 -0
  376. data/lib/mindbody_public_api/models/staff_permission_group.rb +105 -0
  377. data/lib/mindbody_public_api/models/staff_session_type.rb +205 -0
  378. data/lib/mindbody_public_api/models/staff_setting.rb +84 -0
  379. data/lib/mindbody_public_api/models/status1_enum.rb +56 -0
  380. data/lib/mindbody_public_api/models/status_enum.rb +66 -0
  381. data/lib/mindbody_public_api/models/stored_card_info.rb +62 -0
  382. data/lib/mindbody_public_api/models/sub_category.rb +82 -0
  383. data/lib/mindbody_public_api/models/substitute_class_teacher_request.rb +127 -0
  384. data/lib/mindbody_public_api/models/substitute_class_teacher_response.rb +63 -0
  385. data/lib/mindbody_public_api/models/substitute_teacher_class.rb +318 -0
  386. data/lib/mindbody_public_api/models/suspend_contract_request.rb +162 -0
  387. data/lib/mindbody_public_api/models/suspend_contract_response.rb +62 -0
  388. data/lib/mindbody_public_api/models/terminate_contract_request.rb +113 -0
  389. data/lib/mindbody_public_api/models/terminate_contract_response.rb +62 -0
  390. data/lib/mindbody_public_api/models/time_card_event.rb +139 -0
  391. data/lib/mindbody_public_api/models/tip.rb +101 -0
  392. data/lib/mindbody_public_api/models/transaction.rb +245 -0
  393. data/lib/mindbody_public_api/models/transaction_response.rb +74 -0
  394. data/lib/mindbody_public_api/models/type1_enum.rb +56 -0
  395. data/lib/mindbody_public_api/models/type2_enum.rb +56 -0
  396. data/lib/mindbody_public_api/models/type_enum.rb +57 -0
  397. data/lib/mindbody_public_api/models/unavailability.rb +109 -0
  398. data/lib/mindbody_public_api/models/unavailability1.rb +109 -0
  399. data/lib/mindbody_public_api/models/unavailability_plain.rb +119 -0
  400. data/lib/mindbody_public_api/models/upcoming_autopay_event.rb +133 -0
  401. data/lib/mindbody_public_api/models/update_appointment_request.rb +225 -0
  402. data/lib/mindbody_public_api/models/update_appointment_response.rb +62 -0
  403. data/lib/mindbody_public_api/models/update_availability_request.rb +171 -0
  404. data/lib/mindbody_public_api/models/update_availability_response.rb +89 -0
  405. data/lib/mindbody_public_api/models/update_class_enrollment_schedule_request.rb +343 -0
  406. data/lib/mindbody_public_api/models/update_class_schedule_notes_request.rb +62 -0
  407. data/lib/mindbody_public_api/models/update_client_contract_autopays_request.rb +149 -0
  408. data/lib/mindbody_public_api/models/update_client_request.rb +128 -0
  409. data/lib/mindbody_public_api/models/update_client_response.rb +62 -0
  410. data/lib/mindbody_public_api/models/update_client_rewards_request.rb +143 -0
  411. data/lib/mindbody_public_api/models/update_client_service_request.rb +121 -0
  412. data/lib/mindbody_public_api/models/update_client_service_response.rb +62 -0
  413. data/lib/mindbody_public_api/models/update_client_visit_request.rb +130 -0
  414. data/lib/mindbody_public_api/models/update_client_visit_response.rb +62 -0
  415. data/lib/mindbody_public_api/models/update_contact_log_comment.rb +72 -0
  416. data/lib/mindbody_public_api/models/update_contact_log_request.rb +188 -0
  417. data/lib/mindbody_public_api/models/update_contact_log_type.rb +71 -0
  418. data/lib/mindbody_public_api/models/update_pricing_option_request.rb +252 -0
  419. data/lib/mindbody_public_api/models/update_product_price_request.rb +83 -0
  420. data/lib/mindbody_public_api/models/update_product_price_response.rb +62 -0
  421. data/lib/mindbody_public_api/models/update_product_request.rb +83 -0
  422. data/lib/mindbody_public_api/models/update_reservation_response.rb +73 -0
  423. data/lib/mindbody_public_api/models/update_sale_date_request.rb +81 -0
  424. data/lib/mindbody_public_api/models/update_sale_date_response.rb +62 -0
  425. data/lib/mindbody_public_api/models/update_service_request.rb +82 -0
  426. data/lib/mindbody_public_api/models/update_service_response.rb +71 -0
  427. data/lib/mindbody_public_api/models/update_site_client_index_request.rb +172 -0
  428. data/lib/mindbody_public_api/models/update_site_client_index_response.rb +175 -0
  429. data/lib/mindbody_public_api/models/update_staff_permissions_request.rb +71 -0
  430. data/lib/mindbody_public_api/models/update_staff_permissions_response.rb +62 -0
  431. data/lib/mindbody_public_api/models/update_staff_request.rb +378 -0
  432. data/lib/mindbody_public_api/models/update_staff_response.rb +62 -0
  433. data/lib/mindbody_public_api/models/upload_client_document_request.rb +68 -0
  434. data/lib/mindbody_public_api/models/upload_client_document_response.rb +71 -0
  435. data/lib/mindbody_public_api/models/upload_client_photo_request.rb +68 -0
  436. data/lib/mindbody_public_api/models/upload_client_photo_response.rb +71 -0
  437. data/lib/mindbody_public_api/models/user.rb +95 -0
  438. data/lib/mindbody_public_api/models/visit.rb +399 -0
  439. data/lib/mindbody_public_api/models/visit_waitlist_info.rb +74 -0
  440. data/lib/mindbody_public_api/models/visit_with_waitlist_info.rb +410 -0
  441. data/lib/mindbody_public_api/models/waitlist_entry.rb +173 -0
  442. data/lib/mindbody_public_api/models/written_class_schedules_info.rb +73 -0
  443. data/lib/mindbody_public_api/utilities/date_time_helper.rb +11 -0
  444. data/lib/mindbody_public_api/utilities/file_wrapper.rb +28 -0
  445. data/lib/mindbody_public_api.rb +495 -0
  446. metadata +529 -0
@@ -0,0 +1,636 @@
1
+ # mindbody_public_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module MindbodyPublicApi
8
+ # Contract Model.
9
+ class Contract < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The contract’s ID at the subscriber’s business.
14
+ # @return [Integer]
15
+ attr_accessor :id
16
+
17
+ # The name of the contract.
18
+ # @return [String]
19
+ attr_accessor :name
20
+
21
+ # A description of the contract.
22
+ # @return [String]
23
+ attr_accessor :description
24
+
25
+ # The ID of the membership that was assigned to the client when the client
26
+ # signed up for a contract.
27
+ # @return [Integer]
28
+ attr_accessor :assigns_membership_id
29
+
30
+ # The name of the membership that was assigned to the client when the client
31
+ # signed up for this contract.
32
+ # @return [String]
33
+ attr_accessor :assigns_membership_name
34
+
35
+ # When `true`, indicates that this membership is intended to be shown to
36
+ # clients in client experiences.<br />
37
+ # When `false`, this contract should only be shown to staff members.
38
+ # @return [TrueClass | FalseClass]
39
+ attr_accessor :sold_online
40
+
41
+ # Contains information about the items in the contract.
42
+ # @return [Array[ContractItem]]
43
+ attr_accessor :contract_items
44
+
45
+ # Defines whether this contract is treated as an introductory offer. If this
46
+ # is an introductory offer, then clients are always charged a set number of
47
+ # times rather than month to month, using their AutoPays. Possible values
48
+ # are:
49
+ # * None
50
+ # * NewConsumer
51
+ # * NewAndReturningConsumer
52
+ # @return [String]
53
+ attr_accessor :intro_offer
54
+
55
+ # Defines whether this contract is treated as an introductory offer. If this
56
+ # is an introductory offer, then clients are always charged a set number of
57
+ # times rather than month to month, using their AutoPays. Possible values
58
+ # are:
59
+ # * None
60
+ # * NewConsumer
61
+ # * NewAndReturningConsumer
62
+ # @return [AutopaySchedule]
63
+ attr_accessor :autopay_schedule
64
+
65
+ # The number of times that the AutoPay is to be run. This value is null if
66
+ # `FrequencyType` is `MonthToMonth`.
67
+ # @return [Integer]
68
+ attr_accessor :number_of_autopays
69
+
70
+ # Defines whether the AutoPay, if applicable to this contract, runs on a set
71
+ # schedule or when the pricing option runs out or expires. Possible values
72
+ # are:
73
+ # * OnSetSchedule
74
+ # * PricingOptionRunsOutOrExpires
75
+ # @return [String]
76
+ attr_accessor :autopay_trigger_type
77
+
78
+ # The renewal action to be taken when this AutoPay is completed. Possible
79
+ # values are:
80
+ # * ContractExpires
81
+ # * ContractAutomaticallyRenews
82
+ # @return [String]
83
+ attr_accessor :action_upon_completion_of_autopays
84
+
85
+ # The value that indicates when clients are charged. Possible values are:
86
+ # * OnSaleDate
87
+ # * FirstOfTheMonth
88
+ # * FifteenthOfTheMonth
89
+ # * LastDayOfTheMonth
90
+ # * FirstOrFifteenthOfTheMonth
91
+ # * FirstOrSixteenthOfTheMonth
92
+ # * FifteenthOrEndOfTheMonth
93
+ # * SpecificDate
94
+ # @return [String]
95
+ attr_accessor :clients_charged_on
96
+
97
+ # If `ClientsChargedOn` is defined as a specific date, this property holds
98
+ # the value of that date. Otherwise, this property is null.
99
+ # @return [DateTime]
100
+ attr_accessor :clients_charged_on_specific_date
101
+
102
+ # The calculated discount applied to the items in this contract.
103
+ # @return [Float]
104
+ attr_accessor :discount_amount
105
+
106
+ # The amount of the deposit required for this contract.
107
+ # @return [Float]
108
+ attr_accessor :deposit_amount
109
+
110
+ # When `true`, indicates that the first payment for the AutoPay is free.
111
+ # @return [TrueClass | FalseClass]
112
+ attr_accessor :first_autopay_free
113
+
114
+ # When `true`, indicates that the last payment for the AutoPay is free.
115
+ # @return [TrueClass | FalseClass]
116
+ attr_accessor :last_autopay_free
117
+
118
+ # When `true`, indicates that the client can terminate this contract on the
119
+ # Internet.
120
+ # @return [TrueClass | FalseClass]
121
+ attr_accessor :client_terminate_online
122
+
123
+ # Contains information about the memberships that can purchase this
124
+ # contract. If null, then no membership restrictions exist, and anyone can
125
+ # purchase the contract.
126
+ # @return [Array[MembershipTypeRestriction]]
127
+ attr_accessor :membership_type_restrictions
128
+
129
+ # The IDs of the locations where this contract may be sold. If there are no
130
+ # restrictions, this value is null.
131
+ # @return [Array[Integer]]
132
+ attr_accessor :location_purchase_restriction_ids
133
+
134
+ # Location names where the contract may be purchased. If this value is null,
135
+ # there are no restrictions.
136
+ # @return [Array[String]]
137
+ attr_accessor :location_purchase_restriction_names
138
+
139
+ # Business-defined terms and conditions for the contract.
140
+ # @return [String]
141
+ attr_accessor :agreement_terms
142
+
143
+ # When `true`, clients who purchase the contract are prompted to agree to
144
+ # the terms of the contract the next time that they log in.
145
+ # @return [TrueClass | FalseClass]
146
+ attr_accessor :requires_electronic_confirmation
147
+
148
+ # When `true`, this contract establishes an AutoPay on the client’s account.
149
+ # @return [TrueClass | FalseClass]
150
+ attr_accessor :autopay_enabled
151
+
152
+ # The subtotal of the amount that the client is to be charged when signing
153
+ # up for the contract.
154
+ # @return [Float]
155
+ attr_accessor :first_payment_amount_subtotal
156
+
157
+ # The amount of tax that the client is to be charged when signing up for the
158
+ # contract.
159
+ # @return [Float]
160
+ attr_accessor :first_payment_amount_tax
161
+
162
+ # The total amount that the client is to be charged when signing up for the
163
+ # contract.
164
+ # @return [Float]
165
+ attr_accessor :first_payment_amount_total
166
+
167
+ # The subtotal amount that the client is to be charged on an ongoing basis.
168
+ # @return [Float]
169
+ attr_accessor :recurring_payment_amount_subtotal
170
+
171
+ # The amount of tax the client is to be charged on an ongoing basis.
172
+ # @return [Float]
173
+ attr_accessor :recurring_payment_amount_tax
174
+
175
+ # The total amount that the client is to be charged on an ongoing basis.
176
+ # @return [Float]
177
+ attr_accessor :recurring_payment_amount_total
178
+
179
+ # The subtotal amount that the client is to be charged over the lifespan of
180
+ # the contract.
181
+ # @return [Float]
182
+ attr_accessor :total_contract_amount_subtotal
183
+
184
+ # The total amount of tax the client is to be charged over the lifespan of
185
+ # the contract.
186
+ # @return [Float]
187
+ attr_accessor :total_contract_amount_tax
188
+
189
+ # The total amount the client is to be charged over the lifespan of the
190
+ # contract.
191
+ # @return [Float]
192
+ attr_accessor :total_contract_amount_total
193
+
194
+ # Subtotal promotional period
195
+ # @return [Float]
196
+ attr_accessor :promo_payment_amount_subtotal
197
+
198
+ # Taxes of promotional period
199
+ # @return [Float]
200
+ attr_accessor :promo_payment_amount_tax
201
+
202
+ # Total of promotional period
203
+ # @return [Float]
204
+ attr_accessor :promo_payment_amount_total
205
+
206
+ # Number of times that the AutoPay runs under the promotional period
207
+ # @return [Integer]
208
+ attr_accessor :number_of_promo_autopays
209
+
210
+ # A mapping from model property names to API property names.
211
+ def self.names
212
+ @_hash = {} if @_hash.nil?
213
+ @_hash['id'] = 'Id'
214
+ @_hash['name'] = 'Name'
215
+ @_hash['description'] = 'Description'
216
+ @_hash['assigns_membership_id'] = 'AssignsMembershipId'
217
+ @_hash['assigns_membership_name'] = 'AssignsMembershipName'
218
+ @_hash['sold_online'] = 'SoldOnline'
219
+ @_hash['contract_items'] = 'ContractItems'
220
+ @_hash['intro_offer'] = 'IntroOffer'
221
+ @_hash['autopay_schedule'] = 'AutopaySchedule'
222
+ @_hash['number_of_autopays'] = 'NumberOfAutopays'
223
+ @_hash['autopay_trigger_type'] = 'AutopayTriggerType'
224
+ @_hash['action_upon_completion_of_autopays'] =
225
+ 'ActionUponCompletionOfAutopays'
226
+ @_hash['clients_charged_on'] = 'ClientsChargedOn'
227
+ @_hash['clients_charged_on_specific_date'] =
228
+ 'ClientsChargedOnSpecificDate'
229
+ @_hash['discount_amount'] = 'DiscountAmount'
230
+ @_hash['deposit_amount'] = 'DepositAmount'
231
+ @_hash['first_autopay_free'] = 'FirstAutopayFree'
232
+ @_hash['last_autopay_free'] = 'LastAutopayFree'
233
+ @_hash['client_terminate_online'] = 'ClientTerminateOnline'
234
+ @_hash['membership_type_restrictions'] = 'MembershipTypeRestrictions'
235
+ @_hash['location_purchase_restriction_ids'] =
236
+ 'LocationPurchaseRestrictionIds'
237
+ @_hash['location_purchase_restriction_names'] =
238
+ 'LocationPurchaseRestrictionNames'
239
+ @_hash['agreement_terms'] = 'AgreementTerms'
240
+ @_hash['requires_electronic_confirmation'] =
241
+ 'RequiresElectronicConfirmation'
242
+ @_hash['autopay_enabled'] = 'AutopayEnabled'
243
+ @_hash['first_payment_amount_subtotal'] = 'FirstPaymentAmountSubtotal'
244
+ @_hash['first_payment_amount_tax'] = 'FirstPaymentAmountTax'
245
+ @_hash['first_payment_amount_total'] = 'FirstPaymentAmountTotal'
246
+ @_hash['recurring_payment_amount_subtotal'] =
247
+ 'RecurringPaymentAmountSubtotal'
248
+ @_hash['recurring_payment_amount_tax'] = 'RecurringPaymentAmountTax'
249
+ @_hash['recurring_payment_amount_total'] = 'RecurringPaymentAmountTotal'
250
+ @_hash['total_contract_amount_subtotal'] = 'TotalContractAmountSubtotal'
251
+ @_hash['total_contract_amount_tax'] = 'TotalContractAmountTax'
252
+ @_hash['total_contract_amount_total'] = 'TotalContractAmountTotal'
253
+ @_hash['promo_payment_amount_subtotal'] = 'PromoPaymentAmountSubtotal'
254
+ @_hash['promo_payment_amount_tax'] = 'PromoPaymentAmountTax'
255
+ @_hash['promo_payment_amount_total'] = 'PromoPaymentAmountTotal'
256
+ @_hash['number_of_promo_autopays'] = 'NumberOfPromoAutopays'
257
+ @_hash
258
+ end
259
+
260
+ # An array for optional fields
261
+ def self.optionals
262
+ %w[
263
+ id
264
+ name
265
+ description
266
+ assigns_membership_id
267
+ assigns_membership_name
268
+ sold_online
269
+ contract_items
270
+ intro_offer
271
+ autopay_schedule
272
+ number_of_autopays
273
+ autopay_trigger_type
274
+ action_upon_completion_of_autopays
275
+ clients_charged_on
276
+ clients_charged_on_specific_date
277
+ discount_amount
278
+ deposit_amount
279
+ first_autopay_free
280
+ last_autopay_free
281
+ client_terminate_online
282
+ membership_type_restrictions
283
+ location_purchase_restriction_ids
284
+ location_purchase_restriction_names
285
+ agreement_terms
286
+ requires_electronic_confirmation
287
+ autopay_enabled
288
+ first_payment_amount_subtotal
289
+ first_payment_amount_tax
290
+ first_payment_amount_total
291
+ recurring_payment_amount_subtotal
292
+ recurring_payment_amount_tax
293
+ recurring_payment_amount_total
294
+ total_contract_amount_subtotal
295
+ total_contract_amount_tax
296
+ total_contract_amount_total
297
+ promo_payment_amount_subtotal
298
+ promo_payment_amount_tax
299
+ promo_payment_amount_total
300
+ number_of_promo_autopays
301
+ ]
302
+ end
303
+
304
+ # An array for nullable fields
305
+ def self.nullables
306
+ []
307
+ end
308
+
309
+ def initialize(id = SKIP, name = SKIP, description = SKIP,
310
+ assigns_membership_id = SKIP, assigns_membership_name = SKIP,
311
+ sold_online = SKIP, contract_items = SKIP,
312
+ intro_offer = SKIP, autopay_schedule = SKIP,
313
+ number_of_autopays = SKIP, autopay_trigger_type = SKIP,
314
+ action_upon_completion_of_autopays = SKIP,
315
+ clients_charged_on = SKIP,
316
+ clients_charged_on_specific_date = SKIP,
317
+ discount_amount = SKIP, deposit_amount = SKIP,
318
+ first_autopay_free = SKIP, last_autopay_free = SKIP,
319
+ client_terminate_online = SKIP,
320
+ membership_type_restrictions = SKIP,
321
+ location_purchase_restriction_ids = SKIP,
322
+ location_purchase_restriction_names = SKIP,
323
+ agreement_terms = SKIP,
324
+ requires_electronic_confirmation = SKIP,
325
+ autopay_enabled = SKIP, first_payment_amount_subtotal = SKIP,
326
+ first_payment_amount_tax = SKIP,
327
+ first_payment_amount_total = SKIP,
328
+ recurring_payment_amount_subtotal = SKIP,
329
+ recurring_payment_amount_tax = SKIP,
330
+ recurring_payment_amount_total = SKIP,
331
+ total_contract_amount_subtotal = SKIP,
332
+ total_contract_amount_tax = SKIP,
333
+ total_contract_amount_total = SKIP,
334
+ promo_payment_amount_subtotal = SKIP,
335
+ promo_payment_amount_tax = SKIP,
336
+ promo_payment_amount_total = SKIP,
337
+ number_of_promo_autopays = SKIP)
338
+ @id = id unless id == SKIP
339
+ @name = name unless name == SKIP
340
+ @description = description unless description == SKIP
341
+ @assigns_membership_id = assigns_membership_id unless assigns_membership_id == SKIP
342
+ @assigns_membership_name = assigns_membership_name unless assigns_membership_name == SKIP
343
+ @sold_online = sold_online unless sold_online == SKIP
344
+ @contract_items = contract_items unless contract_items == SKIP
345
+ @intro_offer = intro_offer unless intro_offer == SKIP
346
+ @autopay_schedule = autopay_schedule unless autopay_schedule == SKIP
347
+ @number_of_autopays = number_of_autopays unless number_of_autopays == SKIP
348
+ @autopay_trigger_type = autopay_trigger_type unless autopay_trigger_type == SKIP
349
+ unless action_upon_completion_of_autopays == SKIP
350
+ @action_upon_completion_of_autopays =
351
+ action_upon_completion_of_autopays
352
+ end
353
+ @clients_charged_on = clients_charged_on unless clients_charged_on == SKIP
354
+ unless clients_charged_on_specific_date == SKIP
355
+ @clients_charged_on_specific_date =
356
+ clients_charged_on_specific_date
357
+ end
358
+ @discount_amount = discount_amount unless discount_amount == SKIP
359
+ @deposit_amount = deposit_amount unless deposit_amount == SKIP
360
+ @first_autopay_free = first_autopay_free unless first_autopay_free == SKIP
361
+ @last_autopay_free = last_autopay_free unless last_autopay_free == SKIP
362
+ @client_terminate_online = client_terminate_online unless client_terminate_online == SKIP
363
+ unless membership_type_restrictions == SKIP
364
+ @membership_type_restrictions =
365
+ membership_type_restrictions
366
+ end
367
+ unless location_purchase_restriction_ids == SKIP
368
+ @location_purchase_restriction_ids =
369
+ location_purchase_restriction_ids
370
+ end
371
+ unless location_purchase_restriction_names == SKIP
372
+ @location_purchase_restriction_names =
373
+ location_purchase_restriction_names
374
+ end
375
+ @agreement_terms = agreement_terms unless agreement_terms == SKIP
376
+ unless requires_electronic_confirmation == SKIP
377
+ @requires_electronic_confirmation =
378
+ requires_electronic_confirmation
379
+ end
380
+ @autopay_enabled = autopay_enabled unless autopay_enabled == SKIP
381
+ unless first_payment_amount_subtotal == SKIP
382
+ @first_payment_amount_subtotal =
383
+ first_payment_amount_subtotal
384
+ end
385
+ @first_payment_amount_tax = first_payment_amount_tax unless first_payment_amount_tax == SKIP
386
+ unless first_payment_amount_total == SKIP
387
+ @first_payment_amount_total =
388
+ first_payment_amount_total
389
+ end
390
+ unless recurring_payment_amount_subtotal == SKIP
391
+ @recurring_payment_amount_subtotal =
392
+ recurring_payment_amount_subtotal
393
+ end
394
+ unless recurring_payment_amount_tax == SKIP
395
+ @recurring_payment_amount_tax =
396
+ recurring_payment_amount_tax
397
+ end
398
+ unless recurring_payment_amount_total == SKIP
399
+ @recurring_payment_amount_total =
400
+ recurring_payment_amount_total
401
+ end
402
+ unless total_contract_amount_subtotal == SKIP
403
+ @total_contract_amount_subtotal =
404
+ total_contract_amount_subtotal
405
+ end
406
+ unless total_contract_amount_tax == SKIP
407
+ @total_contract_amount_tax =
408
+ total_contract_amount_tax
409
+ end
410
+ unless total_contract_amount_total == SKIP
411
+ @total_contract_amount_total =
412
+ total_contract_amount_total
413
+ end
414
+ unless promo_payment_amount_subtotal == SKIP
415
+ @promo_payment_amount_subtotal =
416
+ promo_payment_amount_subtotal
417
+ end
418
+ @promo_payment_amount_tax = promo_payment_amount_tax unless promo_payment_amount_tax == SKIP
419
+ unless promo_payment_amount_total == SKIP
420
+ @promo_payment_amount_total =
421
+ promo_payment_amount_total
422
+ end
423
+ @number_of_promo_autopays = number_of_promo_autopays unless number_of_promo_autopays == SKIP
424
+ end
425
+
426
+ # Creates an instance of the object from a hash.
427
+ def self.from_hash(hash)
428
+ return nil unless hash
429
+
430
+ # Extract variables from the hash.
431
+ id = hash.key?('Id') ? hash['Id'] : SKIP
432
+ name = hash.key?('Name') ? hash['Name'] : SKIP
433
+ description = hash.key?('Description') ? hash['Description'] : SKIP
434
+ assigns_membership_id =
435
+ hash.key?('AssignsMembershipId') ? hash['AssignsMembershipId'] : SKIP
436
+ assigns_membership_name =
437
+ hash.key?('AssignsMembershipName') ? hash['AssignsMembershipName'] : SKIP
438
+ sold_online = hash.key?('SoldOnline') ? hash['SoldOnline'] : SKIP
439
+ # Parameter is an array, so we need to iterate through it
440
+ contract_items = nil
441
+ unless hash['ContractItems'].nil?
442
+ contract_items = []
443
+ hash['ContractItems'].each do |structure|
444
+ contract_items << (ContractItem.from_hash(structure) if structure)
445
+ end
446
+ end
447
+
448
+ contract_items = SKIP unless hash.key?('ContractItems')
449
+ intro_offer = hash.key?('IntroOffer') ? hash['IntroOffer'] : SKIP
450
+ autopay_schedule = AutopaySchedule.from_hash(hash['AutopaySchedule']) if
451
+ hash['AutopaySchedule']
452
+ number_of_autopays =
453
+ hash.key?('NumberOfAutopays') ? hash['NumberOfAutopays'] : SKIP
454
+ autopay_trigger_type =
455
+ hash.key?('AutopayTriggerType') ? hash['AutopayTriggerType'] : SKIP
456
+ action_upon_completion_of_autopays =
457
+ hash.key?('ActionUponCompletionOfAutopays') ? hash['ActionUponCompletionOfAutopays'] : SKIP
458
+ clients_charged_on =
459
+ hash.key?('ClientsChargedOn') ? hash['ClientsChargedOn'] : SKIP
460
+ clients_charged_on_specific_date = if hash.key?('ClientsChargedOnSpecificDate')
461
+ (DateTimeHelper.from_rfc3339(hash['ClientsChargedOnSpecificDate']) if hash['ClientsChargedOnSpecificDate'])
462
+ else
463
+ SKIP
464
+ end
465
+ discount_amount =
466
+ hash.key?('DiscountAmount') ? hash['DiscountAmount'] : SKIP
467
+ deposit_amount = hash.key?('DepositAmount') ? hash['DepositAmount'] : SKIP
468
+ first_autopay_free =
469
+ hash.key?('FirstAutopayFree') ? hash['FirstAutopayFree'] : SKIP
470
+ last_autopay_free =
471
+ hash.key?('LastAutopayFree') ? hash['LastAutopayFree'] : SKIP
472
+ client_terminate_online =
473
+ hash.key?('ClientTerminateOnline') ? hash['ClientTerminateOnline'] : SKIP
474
+ # Parameter is an array, so we need to iterate through it
475
+ membership_type_restrictions = nil
476
+ unless hash['MembershipTypeRestrictions'].nil?
477
+ membership_type_restrictions = []
478
+ hash['MembershipTypeRestrictions'].each do |structure|
479
+ membership_type_restrictions << (MembershipTypeRestriction.from_hash(structure) if structure)
480
+ end
481
+ end
482
+
483
+ membership_type_restrictions = SKIP unless hash.key?('MembershipTypeRestrictions')
484
+ location_purchase_restriction_ids =
485
+ hash.key?('LocationPurchaseRestrictionIds') ? hash['LocationPurchaseRestrictionIds'] : SKIP
486
+ location_purchase_restriction_names =
487
+ hash.key?('LocationPurchaseRestrictionNames') ? hash['LocationPurchaseRestrictionNames'] : SKIP
488
+ agreement_terms =
489
+ hash.key?('AgreementTerms') ? hash['AgreementTerms'] : SKIP
490
+ requires_electronic_confirmation =
491
+ hash.key?('RequiresElectronicConfirmation') ? hash['RequiresElectronicConfirmation'] : SKIP
492
+ autopay_enabled =
493
+ hash.key?('AutopayEnabled') ? hash['AutopayEnabled'] : SKIP
494
+ first_payment_amount_subtotal =
495
+ hash.key?('FirstPaymentAmountSubtotal') ? hash['FirstPaymentAmountSubtotal'] : SKIP
496
+ first_payment_amount_tax =
497
+ hash.key?('FirstPaymentAmountTax') ? hash['FirstPaymentAmountTax'] : SKIP
498
+ first_payment_amount_total =
499
+ hash.key?('FirstPaymentAmountTotal') ? hash['FirstPaymentAmountTotal'] : SKIP
500
+ recurring_payment_amount_subtotal =
501
+ hash.key?('RecurringPaymentAmountSubtotal') ? hash['RecurringPaymentAmountSubtotal'] : SKIP
502
+ recurring_payment_amount_tax =
503
+ hash.key?('RecurringPaymentAmountTax') ? hash['RecurringPaymentAmountTax'] : SKIP
504
+ recurring_payment_amount_total =
505
+ hash.key?('RecurringPaymentAmountTotal') ? hash['RecurringPaymentAmountTotal'] : SKIP
506
+ total_contract_amount_subtotal =
507
+ hash.key?('TotalContractAmountSubtotal') ? hash['TotalContractAmountSubtotal'] : SKIP
508
+ total_contract_amount_tax =
509
+ hash.key?('TotalContractAmountTax') ? hash['TotalContractAmountTax'] : SKIP
510
+ total_contract_amount_total =
511
+ hash.key?('TotalContractAmountTotal') ? hash['TotalContractAmountTotal'] : SKIP
512
+ promo_payment_amount_subtotal =
513
+ hash.key?('PromoPaymentAmountSubtotal') ? hash['PromoPaymentAmountSubtotal'] : SKIP
514
+ promo_payment_amount_tax =
515
+ hash.key?('PromoPaymentAmountTax') ? hash['PromoPaymentAmountTax'] : SKIP
516
+ promo_payment_amount_total =
517
+ hash.key?('PromoPaymentAmountTotal') ? hash['PromoPaymentAmountTotal'] : SKIP
518
+ number_of_promo_autopays =
519
+ hash.key?('NumberOfPromoAutopays') ? hash['NumberOfPromoAutopays'] : SKIP
520
+
521
+ # Create object from extracted values.
522
+ Contract.new(id,
523
+ name,
524
+ description,
525
+ assigns_membership_id,
526
+ assigns_membership_name,
527
+ sold_online,
528
+ contract_items,
529
+ intro_offer,
530
+ autopay_schedule,
531
+ number_of_autopays,
532
+ autopay_trigger_type,
533
+ action_upon_completion_of_autopays,
534
+ clients_charged_on,
535
+ clients_charged_on_specific_date,
536
+ discount_amount,
537
+ deposit_amount,
538
+ first_autopay_free,
539
+ last_autopay_free,
540
+ client_terminate_online,
541
+ membership_type_restrictions,
542
+ location_purchase_restriction_ids,
543
+ location_purchase_restriction_names,
544
+ agreement_terms,
545
+ requires_electronic_confirmation,
546
+ autopay_enabled,
547
+ first_payment_amount_subtotal,
548
+ first_payment_amount_tax,
549
+ first_payment_amount_total,
550
+ recurring_payment_amount_subtotal,
551
+ recurring_payment_amount_tax,
552
+ recurring_payment_amount_total,
553
+ total_contract_amount_subtotal,
554
+ total_contract_amount_tax,
555
+ total_contract_amount_total,
556
+ promo_payment_amount_subtotal,
557
+ promo_payment_amount_tax,
558
+ promo_payment_amount_total,
559
+ number_of_promo_autopays)
560
+ end
561
+
562
+ def to_custom_clients_charged_on_specific_date
563
+ DateTimeHelper.to_rfc3339(clients_charged_on_specific_date)
564
+ end
565
+
566
+ # Provides a human-readable string representation of the object.
567
+ def to_s
568
+ class_name = self.class.name.split('::').last
569
+ "<#{class_name} id: #{@id}, name: #{@name}, description: #{@description},"\
570
+ " assigns_membership_id: #{@assigns_membership_id}, assigns_membership_name:"\
571
+ " #{@assigns_membership_name}, sold_online: #{@sold_online}, contract_items:"\
572
+ " #{@contract_items}, intro_offer: #{@intro_offer}, autopay_schedule: #{@autopay_schedule},"\
573
+ " number_of_autopays: #{@number_of_autopays}, autopay_trigger_type:"\
574
+ " #{@autopay_trigger_type}, action_upon_completion_of_autopays:"\
575
+ " #{@action_upon_completion_of_autopays}, clients_charged_on: #{@clients_charged_on},"\
576
+ " clients_charged_on_specific_date: #{@clients_charged_on_specific_date}, discount_amount:"\
577
+ " #{@discount_amount}, deposit_amount: #{@deposit_amount}, first_autopay_free:"\
578
+ " #{@first_autopay_free}, last_autopay_free: #{@last_autopay_free}, client_terminate_online:"\
579
+ " #{@client_terminate_online}, membership_type_restrictions:"\
580
+ " #{@membership_type_restrictions}, location_purchase_restriction_ids:"\
581
+ " #{@location_purchase_restriction_ids}, location_purchase_restriction_names:"\
582
+ " #{@location_purchase_restriction_names}, agreement_terms: #{@agreement_terms},"\
583
+ " requires_electronic_confirmation: #{@requires_electronic_confirmation}, autopay_enabled:"\
584
+ " #{@autopay_enabled}, first_payment_amount_subtotal: #{@first_payment_amount_subtotal},"\
585
+ " first_payment_amount_tax: #{@first_payment_amount_tax}, first_payment_amount_total:"\
586
+ " #{@first_payment_amount_total}, recurring_payment_amount_subtotal:"\
587
+ " #{@recurring_payment_amount_subtotal}, recurring_payment_amount_tax:"\
588
+ " #{@recurring_payment_amount_tax}, recurring_payment_amount_total:"\
589
+ " #{@recurring_payment_amount_total}, total_contract_amount_subtotal:"\
590
+ " #{@total_contract_amount_subtotal}, total_contract_amount_tax:"\
591
+ " #{@total_contract_amount_tax}, total_contract_amount_total:"\
592
+ " #{@total_contract_amount_total}, promo_payment_amount_subtotal:"\
593
+ " #{@promo_payment_amount_subtotal}, promo_payment_amount_tax: #{@promo_payment_amount_tax},"\
594
+ " promo_payment_amount_total: #{@promo_payment_amount_total}, number_of_promo_autopays:"\
595
+ " #{@number_of_promo_autopays}>"
596
+ end
597
+
598
+ # Provides a debugging-friendly string with detailed object information.
599
+ def inspect
600
+ class_name = self.class.name.split('::').last
601
+ "<#{class_name} id: #{@id.inspect}, name: #{@name.inspect}, description:"\
602
+ " #{@description.inspect}, assigns_membership_id: #{@assigns_membership_id.inspect},"\
603
+ " assigns_membership_name: #{@assigns_membership_name.inspect}, sold_online:"\
604
+ " #{@sold_online.inspect}, contract_items: #{@contract_items.inspect}, intro_offer:"\
605
+ " #{@intro_offer.inspect}, autopay_schedule: #{@autopay_schedule.inspect},"\
606
+ " number_of_autopays: #{@number_of_autopays.inspect}, autopay_trigger_type:"\
607
+ " #{@autopay_trigger_type.inspect}, action_upon_completion_of_autopays:"\
608
+ " #{@action_upon_completion_of_autopays.inspect}, clients_charged_on:"\
609
+ " #{@clients_charged_on.inspect}, clients_charged_on_specific_date:"\
610
+ " #{@clients_charged_on_specific_date.inspect}, discount_amount:"\
611
+ " #{@discount_amount.inspect}, deposit_amount: #{@deposit_amount.inspect},"\
612
+ " first_autopay_free: #{@first_autopay_free.inspect}, last_autopay_free:"\
613
+ " #{@last_autopay_free.inspect}, client_terminate_online:"\
614
+ " #{@client_terminate_online.inspect}, membership_type_restrictions:"\
615
+ " #{@membership_type_restrictions.inspect}, location_purchase_restriction_ids:"\
616
+ " #{@location_purchase_restriction_ids.inspect}, location_purchase_restriction_names:"\
617
+ " #{@location_purchase_restriction_names.inspect}, agreement_terms:"\
618
+ " #{@agreement_terms.inspect}, requires_electronic_confirmation:"\
619
+ " #{@requires_electronic_confirmation.inspect}, autopay_enabled:"\
620
+ " #{@autopay_enabled.inspect}, first_payment_amount_subtotal:"\
621
+ " #{@first_payment_amount_subtotal.inspect}, first_payment_amount_tax:"\
622
+ " #{@first_payment_amount_tax.inspect}, first_payment_amount_total:"\
623
+ " #{@first_payment_amount_total.inspect}, recurring_payment_amount_subtotal:"\
624
+ " #{@recurring_payment_amount_subtotal.inspect}, recurring_payment_amount_tax:"\
625
+ " #{@recurring_payment_amount_tax.inspect}, recurring_payment_amount_total:"\
626
+ " #{@recurring_payment_amount_total.inspect}, total_contract_amount_subtotal:"\
627
+ " #{@total_contract_amount_subtotal.inspect}, total_contract_amount_tax:"\
628
+ " #{@total_contract_amount_tax.inspect}, total_contract_amount_total:"\
629
+ " #{@total_contract_amount_total.inspect}, promo_payment_amount_subtotal:"\
630
+ " #{@promo_payment_amount_subtotal.inspect}, promo_payment_amount_tax:"\
631
+ " #{@promo_payment_amount_tax.inspect}, promo_payment_amount_total:"\
632
+ " #{@promo_payment_amount_total.inspect}, number_of_promo_autopays:"\
633
+ " #{@number_of_promo_autopays.inspect}>"
634
+ end
635
+ end
636
+ end