@gofynd/fdk-client-javascript 1.2.0 → 1.3.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 (262) hide show
  1. package/README.md +44 -7
  2. package/package.json +1 -2
  3. package/sdk/application/ApplicationAPIClient.d.ts +3 -3
  4. package/sdk/application/ApplicationAPIClient.js +6 -4
  5. package/sdk/application/ApplicationClient.d.ts +2 -3
  6. package/sdk/application/ApplicationClient.js +1 -45
  7. package/sdk/application/ApplicationConfig.d.ts +46 -6
  8. package/sdk/application/ApplicationConfig.js +15 -16
  9. package/sdk/application/Cart/CartApplicationClient.d.ts +61 -33
  10. package/sdk/application/Cart/CartApplicationClient.js +225 -134
  11. package/sdk/application/Cart/CartApplicationModel.d.ts +4 -4
  12. package/sdk/application/Cart/CartApplicationModel.js +4 -4
  13. package/sdk/application/Catalog/CatalogApplicationClient.d.ts +61 -30
  14. package/sdk/application/Catalog/CatalogApplicationClient.js +234 -146
  15. package/sdk/application/Catalog/CatalogApplicationModel.d.ts +115 -13
  16. package/sdk/application/Catalog/CatalogApplicationModel.js +77 -12
  17. package/sdk/application/Common/CommonApplicationClient.d.ts +5 -3
  18. package/sdk/application/Common/CommonApplicationClient.js +13 -11
  19. package/sdk/application/Common/CommonApplicationModel.d.ts +3 -83
  20. package/sdk/application/Common/CommonApplicationModel.js +2 -58
  21. package/sdk/application/Communication/CommunicationApplicationClient.d.ts +9 -3
  22. package/sdk/application/Communication/CommunicationApplicationClient.js +25 -13
  23. package/sdk/application/Communication/CommunicationApplicationModel.d.ts +1 -34
  24. package/sdk/application/Communication/CommunicationApplicationModel.js +0 -36
  25. package/sdk/application/Configuration/ConfigurationApplicationClient.d.ts +46 -16
  26. package/sdk/application/Configuration/ConfigurationApplicationClient.js +144 -68
  27. package/sdk/application/Configuration/ConfigurationApplicationModel.d.ts +1 -219
  28. package/sdk/application/Configuration/ConfigurationApplicationModel.js +0 -226
  29. package/sdk/application/Content/ContentApplicationClient.d.ts +49 -21
  30. package/sdk/application/Content/ContentApplicationClient.js +159 -80
  31. package/sdk/application/Content/ContentApplicationModel.d.ts +5 -622
  32. package/sdk/application/Content/ContentApplicationModel.js +11 -763
  33. package/sdk/application/FileStorage/FileStorageApplicationClient.d.ts +6 -3
  34. package/sdk/application/FileStorage/FileStorageApplicationClient.js +20 -14
  35. package/sdk/application/FileStorage/FileStorageApplicationModel.d.ts +1 -152
  36. package/sdk/application/FileStorage/FileStorageApplicationModel.js +0 -180
  37. package/sdk/application/Lead/LeadApplicationClient.d.ts +14 -7
  38. package/sdk/application/Lead/LeadApplicationClient.js +50 -31
  39. package/sdk/application/Lead/LeadApplicationModel.d.ts +22 -741
  40. package/sdk/application/Lead/LeadApplicationModel.js +21 -481
  41. package/sdk/application/Logistic/LogisticApplicationClient.d.ts +11 -5
  42. package/sdk/application/Logistic/LogisticApplicationClient.js +41 -20
  43. package/sdk/application/Order/OrderApplicationClient.d.ts +24 -12
  44. package/sdk/application/Order/OrderApplicationClient.js +88 -56
  45. package/sdk/application/Payment/PaymentApplicationClient.d.ts +91 -42
  46. package/sdk/application/Payment/PaymentApplicationClient.js +293 -194
  47. package/sdk/application/Payment/PaymentApplicationModel.d.ts +36 -36
  48. package/sdk/application/Payment/PaymentApplicationModel.js +36 -36
  49. package/sdk/application/PosCart/PosCartApplicationClient.d.ts +59 -32
  50. package/sdk/application/PosCart/PosCartApplicationClient.js +214 -130
  51. package/sdk/application/PosCart/PosCartApplicationModel.d.ts +2 -2
  52. package/sdk/application/PosCart/PosCartApplicationModel.js +2 -2
  53. package/sdk/application/Rewards/RewardsApplicationClient.d.ts +16 -7
  54. package/sdk/application/Rewards/RewardsApplicationClient.js +56 -29
  55. package/sdk/application/Share/ShareApplicationClient.d.ts +15 -7
  56. package/sdk/application/Share/ShareApplicationClient.js +51 -31
  57. package/sdk/application/Share/ShareApplicationModel.d.ts +1 -33
  58. package/sdk/application/Share/ShareApplicationModel.js +0 -38
  59. package/sdk/application/Theme/ThemeApplicationClient.d.ts +9 -4
  60. package/sdk/application/Theme/ThemeApplicationClient.js +35 -18
  61. package/sdk/application/Theme/ThemeApplicationModel.d.ts +982 -312
  62. package/sdk/application/Theme/ThemeApplicationModel.js +621 -284
  63. package/sdk/application/User/UserApplicationClient.d.ts +74 -35
  64. package/sdk/application/User/UserApplicationClient.js +252 -161
  65. package/sdk/application/User/UserApplicationModel.d.ts +3 -401
  66. package/sdk/application/User/UserApplicationModel.js +2 -490
  67. package/sdk/common/AxiosHelper.js +1 -2
  68. package/sdk/common/FDKError.d.ts +3 -0
  69. package/sdk/common/FDKError.js +8 -0
  70. package/sdk/common/utils.d.ts +3 -0
  71. package/sdk/common/utils.js +29 -0
  72. package/sdk/partner/PartnerAPIClient.d.ts +5 -4
  73. package/sdk/partner/PartnerAPIClient.js +7 -4
  74. package/sdk/partner/PartnerClient.d.ts +2 -0
  75. package/sdk/partner/PartnerClient.js +3 -0
  76. package/sdk/partner/Theme/ThemePartnerClient.d.ts +299 -0
  77. package/sdk/partner/Theme/ThemePartnerClient.js +768 -0
  78. package/sdk/partner/Theme/ThemePartnerModel.d.ts +1706 -0
  79. package/sdk/partner/Theme/ThemePartnerModel.js +1409 -0
  80. package/sdk/partner/Theme/ThemePartnerValidator.d.ts +22 -0
  81. package/sdk/partner/Theme/ThemePartnerValidator.js +157 -0
  82. package/sdk/partner/index.d.ts +3 -1
  83. package/sdk/partner/index.js +3 -1
  84. package/sdk/platform/AuditTrail/AuditTrailPlatformClient.d.ts +8 -4
  85. package/sdk/platform/AuditTrail/AuditTrailPlatformClient.js +38 -16
  86. package/sdk/platform/AuditTrail/AuditTrailPlatformModel.d.ts +1 -13
  87. package/sdk/platform/AuditTrail/AuditTrailPlatformModel.js +0 -12
  88. package/sdk/platform/AuditTrail/AuditTrailPlatformValidator.d.ts +10 -0
  89. package/sdk/platform/AuditTrail/AuditTrailPlatformValidator.js +4 -0
  90. package/sdk/platform/Billing/BillingPlatformClient.d.ts +59 -14
  91. package/sdk/platform/Billing/BillingPlatformClient.js +315 -64
  92. package/sdk/platform/Billing/BillingPlatformModel.d.ts +56 -196
  93. package/sdk/platform/Billing/BillingPlatformModel.js +63 -217
  94. package/sdk/platform/Billing/BillingPlatformValidator.d.ts +23 -1
  95. package/sdk/platform/Billing/BillingPlatformValidator.js +31 -0
  96. package/sdk/platform/Cart/CartPlatformApplicationClient.d.ts +124 -63
  97. package/sdk/platform/Cart/CartPlatformApplicationClient.js +431 -265
  98. package/sdk/platform/Cart/CartPlatformModel.d.ts +253 -53
  99. package/sdk/platform/Cart/CartPlatformModel.js +104 -54
  100. package/sdk/platform/Catalog/CatalogPlatformApplicationClient.d.ts +120 -53
  101. package/sdk/platform/Catalog/CatalogPlatformApplicationClient.js +398 -247
  102. package/sdk/platform/Catalog/CatalogPlatformClient.d.ts +155 -78
  103. package/sdk/platform/Catalog/CatalogPlatformClient.js +561 -355
  104. package/sdk/platform/Catalog/CatalogPlatformModel.d.ts +10 -12
  105. package/sdk/platform/Catalog/CatalogPlatformModel.js +10 -12
  106. package/sdk/platform/Catalog/CatalogPlatformValidator.d.ts +30 -0
  107. package/sdk/platform/Catalog/CatalogPlatformValidator.js +13 -0
  108. package/sdk/platform/Common/CommonPlatformClient.d.ts +5 -3
  109. package/sdk/platform/Common/CommonPlatformClient.js +13 -11
  110. package/sdk/platform/Common/CommonPlatformModel.d.ts +39 -64
  111. package/sdk/platform/Common/CommonPlatformModel.js +23 -57
  112. package/sdk/platform/Common/CommonPlatformValidator.d.ts +5 -10
  113. package/sdk/platform/Common/CommonPlatformValidator.js +3 -4
  114. package/sdk/platform/Communication/CommunicationPlatformApplicationClient.d.ts +370 -120
  115. package/sdk/platform/Communication/CommunicationPlatformApplicationClient.js +2328 -888
  116. package/sdk/platform/Communication/CommunicationPlatformApplicationValidator.d.ts +143 -24
  117. package/sdk/platform/Communication/CommunicationPlatformApplicationValidator.js +179 -15
  118. package/sdk/platform/Communication/CommunicationPlatformClient.d.ts +2 -1
  119. package/sdk/platform/Communication/CommunicationPlatformClient.js +6 -5
  120. package/sdk/platform/Communication/CommunicationPlatformModel.d.ts +386 -308
  121. package/sdk/platform/Communication/CommunicationPlatformModel.js +415 -355
  122. package/sdk/platform/CompanyProfile/CompanyProfilePlatformClient.d.ts +38 -13
  123. package/sdk/platform/CompanyProfile/CompanyProfilePlatformClient.js +171 -57
  124. package/sdk/platform/CompanyProfile/CompanyProfilePlatformModel.d.ts +53 -1
  125. package/sdk/platform/CompanyProfile/CompanyProfilePlatformModel.js +54 -0
  126. package/sdk/platform/CompanyProfile/CompanyProfilePlatformValidator.d.ts +5 -1
  127. package/sdk/platform/CompanyProfile/CompanyProfilePlatformValidator.js +7 -0
  128. package/sdk/platform/Configuration/ConfigurationPlatformApplicationClient.d.ts +96 -29
  129. package/sdk/platform/Configuration/ConfigurationPlatformApplicationClient.js +311 -126
  130. package/sdk/platform/Configuration/ConfigurationPlatformApplicationValidator.d.ts +5 -1
  131. package/sdk/platform/Configuration/ConfigurationPlatformApplicationValidator.js +7 -0
  132. package/sdk/platform/Configuration/ConfigurationPlatformClient.d.ts +36 -18
  133. package/sdk/platform/Configuration/ConfigurationPlatformClient.js +121 -86
  134. package/sdk/platform/Configuration/ConfigurationPlatformModel.d.ts +13 -180
  135. package/sdk/platform/Configuration/ConfigurationPlatformModel.js +5 -113
  136. package/sdk/platform/Content/ContentPlatformApplicationClient.d.ts +162 -70
  137. package/sdk/platform/Content/ContentPlatformApplicationClient.js +528 -309
  138. package/sdk/platform/Content/ContentPlatformModel.d.ts +9 -198
  139. package/sdk/platform/Content/ContentPlatformModel.js +8 -231
  140. package/sdk/platform/Discount/DiscountPlatformClient.d.ts +48 -11
  141. package/sdk/platform/Discount/DiscountPlatformClient.js +142 -48
  142. package/sdk/platform/Discount/DiscountPlatformModel.d.ts +40 -1
  143. package/sdk/platform/Discount/DiscountPlatformModel.js +27 -0
  144. package/sdk/platform/FileStorage/FileStoragePlatformApplicationClient.d.ts +84 -18
  145. package/sdk/platform/FileStorage/FileStoragePlatformApplicationClient.js +486 -53
  146. package/sdk/platform/FileStorage/FileStoragePlatformApplicationValidator.d.ts +71 -7
  147. package/sdk/platform/FileStorage/FileStoragePlatformApplicationValidator.js +81 -5
  148. package/sdk/platform/FileStorage/FileStoragePlatformClient.d.ts +13 -18
  149. package/sdk/platform/FileStorage/FileStoragePlatformClient.js +58 -65
  150. package/sdk/platform/FileStorage/FileStoragePlatformModel.d.ts +198 -71
  151. package/sdk/platform/FileStorage/FileStoragePlatformModel.js +212 -64
  152. package/sdk/platform/FileStorage/FileStoragePlatformValidator.d.ts +18 -10
  153. package/sdk/platform/FileStorage/FileStoragePlatformValidator.js +11 -6
  154. package/sdk/platform/Finance/FinancePlatformClient.d.ts +177 -40
  155. package/sdk/platform/Finance/FinancePlatformClient.js +1028 -132
  156. package/sdk/platform/Finance/FinancePlatformModel.d.ts +670 -22
  157. package/sdk/platform/Finance/FinancePlatformModel.js +809 -23
  158. package/sdk/platform/Finance/FinancePlatformValidator.d.ts +111 -1
  159. package/sdk/platform/Finance/FinancePlatformValidator.js +134 -0
  160. package/sdk/platform/Inventory/InventoryPlatformClient.d.ts +24 -12
  161. package/sdk/platform/Inventory/InventoryPlatformClient.js +94 -52
  162. package/sdk/platform/Lead/LeadPlatformApplicationClient.d.ts +27 -13
  163. package/sdk/platform/Lead/LeadPlatformApplicationClient.js +101 -55
  164. package/sdk/platform/Lead/LeadPlatformClient.d.ts +50 -39
  165. package/sdk/platform/Lead/LeadPlatformClient.js +171 -112
  166. package/sdk/platform/Lead/LeadPlatformModel.d.ts +32 -390
  167. package/sdk/platform/Lead/LeadPlatformModel.js +31 -214
  168. package/sdk/platform/Lead/LeadPlatformValidator.d.ts +33 -33
  169. package/sdk/platform/Lead/LeadPlatformValidator.js +23 -23
  170. package/sdk/platform/OAuthClient.js +6 -2
  171. package/sdk/platform/Order/OrderPlatformApplicationClient.d.ts +4 -2
  172. package/sdk/platform/Order/OrderPlatformApplicationClient.js +12 -10
  173. package/sdk/platform/Order/OrderPlatformClient.d.ts +165 -71
  174. package/sdk/platform/Order/OrderPlatformClient.js +738 -205
  175. package/sdk/platform/Order/OrderPlatformModel.d.ts +261 -3
  176. package/sdk/platform/Order/OrderPlatformModel.js +225 -2
  177. package/sdk/platform/Order/OrderPlatformValidator.d.ts +104 -3
  178. package/sdk/platform/Order/OrderPlatformValidator.js +85 -2
  179. package/sdk/platform/Partner/PartnerPlatformApplicationClient.d.ts +4 -22
  180. package/sdk/platform/Partner/PartnerPlatformApplicationClient.js +12 -159
  181. package/sdk/platform/Partner/PartnerPlatformApplicationValidator.d.ts +1 -30
  182. package/sdk/platform/Partner/PartnerPlatformApplicationValidator.js +0 -26
  183. package/sdk/platform/Partner/PartnerPlatformModel.d.ts +1 -690
  184. package/sdk/platform/Partner/PartnerPlatformModel.js +0 -809
  185. package/sdk/platform/Payment/PaymentPlatformApplicationClient.d.ts +167 -32
  186. package/sdk/platform/Payment/PaymentPlatformApplicationClient.js +793 -145
  187. package/sdk/platform/Payment/PaymentPlatformApplicationValidator.d.ts +91 -1
  188. package/sdk/platform/Payment/PaymentPlatformApplicationValidator.js +91 -0
  189. package/sdk/platform/Payment/PaymentPlatformClient.d.ts +20 -10
  190. package/sdk/platform/Payment/PaymentPlatformClient.js +68 -47
  191. package/sdk/platform/Payment/PaymentPlatformModel.d.ts +549 -7
  192. package/sdk/platform/Payment/PaymentPlatformModel.js +305 -6
  193. package/sdk/platform/PlatformAPIClient.d.ts +3 -3
  194. package/sdk/platform/PlatformAPIClient.js +2 -2
  195. package/sdk/platform/PlatformClient.d.ts +2 -2
  196. package/sdk/platform/PlatformClient.js +4 -4
  197. package/sdk/platform/Rewards/RewardsPlatformApplicationClient.d.ts +28 -12
  198. package/sdk/platform/Rewards/RewardsPlatformApplicationClient.js +90 -53
  199. package/sdk/platform/Rewards/RewardsPlatformModel.d.ts +1 -12
  200. package/sdk/platform/Rewards/RewardsPlatformModel.js +0 -14
  201. package/sdk/platform/Serviceability/ServiceabilityPlatformApplicationClient.d.ts +62 -26
  202. package/sdk/platform/Serviceability/ServiceabilityPlatformApplicationClient.js +210 -93
  203. package/sdk/platform/Serviceability/ServiceabilityPlatformApplicationValidator.d.ts +20 -11
  204. package/sdk/platform/Serviceability/ServiceabilityPlatformApplicationValidator.js +23 -11
  205. package/sdk/platform/Serviceability/ServiceabilityPlatformClient.d.ts +36 -18
  206. package/sdk/platform/Serviceability/ServiceabilityPlatformClient.js +142 -78
  207. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.d.ts +12 -3
  208. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.js +14 -2
  209. package/sdk/platform/Share/SharePlatformApplicationClient.d.ts +10 -26
  210. package/sdk/platform/Share/SharePlatformApplicationClient.js +36 -67
  211. package/sdk/platform/Share/SharePlatformModel.d.ts +4 -4
  212. package/sdk/platform/Share/SharePlatformModel.js +4 -4
  213. package/sdk/platform/Theme/ThemePlatformApplicationClient.d.ts +127 -57
  214. package/sdk/platform/Theme/ThemePlatformApplicationClient.js +564 -189
  215. package/sdk/platform/Theme/ThemePlatformApplicationValidator.d.ts +63 -26
  216. package/sdk/platform/Theme/ThemePlatformApplicationValidator.js +62 -22
  217. package/sdk/platform/Theme/ThemePlatformClient.d.ts +37 -0
  218. package/sdk/platform/Theme/ThemePlatformClient.js +235 -0
  219. package/sdk/platform/Theme/ThemePlatformModel.d.ts +1167 -261
  220. package/sdk/platform/Theme/ThemePlatformModel.js +801 -244
  221. package/sdk/platform/Theme/ThemePlatformValidator.d.ts +32 -0
  222. package/sdk/platform/Theme/ThemePlatformValidator.js +38 -0
  223. package/sdk/platform/User/UserPlatformApplicationClient.d.ts +35 -17
  224. package/sdk/platform/User/UserPlatformApplicationClient.js +132 -73
  225. package/sdk/platform/User/UserPlatformApplicationValidator.d.ts +7 -0
  226. package/sdk/platform/User/UserPlatformApplicationValidator.js +3 -0
  227. package/sdk/platform/User/UserPlatformModel.d.ts +1 -738
  228. package/sdk/platform/User/UserPlatformModel.js +3 -899
  229. package/sdk/platform/Webhook/WebhookPlatformClient.d.ts +120 -7
  230. package/sdk/platform/Webhook/WebhookPlatformClient.js +799 -41
  231. package/sdk/platform/Webhook/WebhookPlatformModel.d.ts +476 -86
  232. package/sdk/platform/Webhook/WebhookPlatformModel.js +388 -89
  233. package/sdk/platform/Webhook/WebhookPlatformValidator.d.ts +96 -9
  234. package/sdk/platform/Webhook/WebhookPlatformValidator.js +117 -5
  235. package/sdk/public/Configuration/ConfigurationPublicClient.d.ts +5 -3
  236. package/sdk/public/Configuration/ConfigurationPublicClient.js +13 -11
  237. package/sdk/public/Configuration/ConfigurationPublicModel.d.ts +3 -106
  238. package/sdk/public/Configuration/ConfigurationPublicModel.js +2 -59
  239. package/sdk/public/Inventory/InventoryPublicClient.d.ts +12 -6
  240. package/sdk/public/Inventory/InventoryPublicClient.js +42 -27
  241. package/sdk/public/Partner/PartnerPublicClient.d.ts +22 -0
  242. package/sdk/public/Partner/PartnerPublicClient.js +110 -0
  243. package/sdk/public/Partner/PartnerPublicModel.d.ts +240 -0
  244. package/sdk/public/Partner/PartnerPublicModel.js +280 -0
  245. package/sdk/public/Partner/PartnerPublicValidator.d.ts +18 -0
  246. package/sdk/public/Partner/PartnerPublicValidator.js +19 -0
  247. package/sdk/public/PublicAPIClient.d.ts +14 -1
  248. package/sdk/public/PublicAPIClient.js +7 -1
  249. package/sdk/public/PublicClient.d.ts +2 -0
  250. package/sdk/public/PublicClient.js +4 -0
  251. package/sdk/public/Webhook/WebhookPublicClient.d.ts +5 -2
  252. package/sdk/public/Webhook/WebhookPublicClient.js +15 -9
  253. package/sdk/public/Webhook/WebhookPublicModel.d.ts +1 -191
  254. package/sdk/public/Webhook/WebhookPublicModel.js +0 -229
  255. package/sdk/public/index.d.ts +1 -0
  256. package/sdk/public/index.js +2 -0
  257. package/sdk/application/ApplicationModels.d.ts +0 -48
  258. package/sdk/application/ApplicationModels.js +0 -38
  259. package/sdk/platform/Partner/PartnerPlatformClient.d.ts +0 -106
  260. package/sdk/platform/Partner/PartnerPlatformClient.js +0 -878
  261. package/sdk/platform/Partner/PartnerPlatformValidator.d.ts +0 -208
  262. package/sdk/platform/Partner/PartnerPlatformValidator.js +0 -169
@@ -0,0 +1,1409 @@
1
+ const Joi = require("joi");
2
+
3
+ /**
4
+ * @typedef AdvanceSetting
5
+ * @property {DividerStrokeHighlightSetting} [divider_stroke_highlight]
6
+ * @property {OverlayPopupSetting} [overlay_popup]
7
+ * @property {UserAlertsSetting} [user_alerts]
8
+ */
9
+
10
+ /**
11
+ * @typedef AllAvailablePageSchema
12
+ * @property {AvailablePageSchema[]} [pages]
13
+ */
14
+
15
+ /**
16
+ * @typedef Assets
17
+ * @property {CommonJS} [common_js]
18
+ * @property {CSS} [css]
19
+ * @property {UMDJs} [umd_js]
20
+ */
21
+
22
+ /**
23
+ * @typedef AuthConfig
24
+ * @property {boolean} [show_footer_auth] - Whether to show footer authentication or not
25
+ * @property {boolean} [show_header_auth] - Whether to show header authentication or not
26
+ */
27
+
28
+ /**
29
+ * @typedef AvailablePagePredicate
30
+ * @property {AvailablePageRoutePredicate} [route]
31
+ * @property {AvailablePageScreenPredicate} [screen]
32
+ * @property {AvailablePageUserPredicate} [user]
33
+ */
34
+
35
+ /**
36
+ * @typedef AvailablePageRoutePredicate
37
+ * @property {string} [exact_url]
38
+ * @property {Object} [query]
39
+ * @property {string} [selected]
40
+ */
41
+
42
+ /**
43
+ * @typedef AvailablePageSchema
44
+ * @property {string} [_id]
45
+ * @property {string} [path]
46
+ * @property {Object[]} [props]
47
+ * @property {AvailablePageSchemaSections[]} [sections]
48
+ * @property {AvailablePageSectionMetaAttributes[]} [sections_meta]
49
+ * @property {AvailablePageSeo} [seo]
50
+ * @property {string} [text]
51
+ * @property {string} [theme]
52
+ * @property {string} [type]
53
+ * @property {string} [value]
54
+ */
55
+
56
+ /**
57
+ * @typedef AvailablePageSchemaSections
58
+ * @property {Object[]} [blocks]
59
+ * @property {string} [label]
60
+ * @property {string} [name]
61
+ * @property {AvailablePagePredicate} [predicate]
62
+ * @property {Object} [preset]
63
+ * @property {Object} [props]
64
+ */
65
+
66
+ /**
67
+ * @typedef AvailablePageScreenPredicate
68
+ * @property {boolean} [desktop]
69
+ * @property {boolean} [mobile]
70
+ * @property {boolean} [tablet]
71
+ */
72
+
73
+ /**
74
+ * @typedef AvailablePageSectionMetaAttributes
75
+ * @property {Object} [attributes]
76
+ */
77
+
78
+ /**
79
+ * @typedef AvailablePageSeo
80
+ * @property {string} [_id]
81
+ * @property {string} [description]
82
+ * @property {string} [title]
83
+ */
84
+
85
+ /**
86
+ * @typedef AvailablePageUserPredicate
87
+ * @property {boolean} [anonymous]
88
+ * @property {boolean} [authenticated]
89
+ */
90
+
91
+ /**
92
+ * @typedef BlitzkriegApiErrorSchema
93
+ * @property {string} [message]
94
+ */
95
+
96
+ /**
97
+ * @typedef BlitzkriegInternalServerErrorSchema
98
+ * @property {string} [message]
99
+ */
100
+
101
+ /**
102
+ * @typedef Block
103
+ * @property {string} [name] - The name of the block.
104
+ * @property {BlockProps} [props]
105
+ * @property {string} [type] - The type of the block.
106
+ */
107
+
108
+ /**
109
+ * @typedef BlockProps
110
+ * @property {ImagePickerProp} [image]
111
+ * @property {UrlProp} [slide_link]
112
+ */
113
+
114
+ /**
115
+ * @typedef ButtonSetting
116
+ * @property {string} [button_link] - The button link color
117
+ * @property {string} [button_primary] - The primary button color
118
+ * @property {string} [button_secondary] - The secondary button color
119
+ */
120
+
121
+ /**
122
+ * @typedef CarouselItem
123
+ * @property {string} [desktop] - Desktop carousel image URL
124
+ * @property {string} [mobile] - Mobile carousel image URL
125
+ */
126
+
127
+ /**
128
+ * @typedef CatalogSize
129
+ * @property {number} [max] - Maximum catalog size
130
+ * @property {number} [min] - Minimum catalog size
131
+ */
132
+
133
+ /**
134
+ * @typedef CheckboxProp
135
+ * @property {string} [type] - The type of the property.
136
+ * @property {boolean} [value] - The value of the checkbox property.
137
+ */
138
+
139
+ /**
140
+ * @typedef Colors
141
+ * @property {string} [accent_color] - The accent color
142
+ * @property {string} [bg_color] - The background color
143
+ * @property {string} [button_secondary_color] - The secondary button color
144
+ * @property {string} [link_color] - The link color
145
+ * @property {string} [primary_color] - The primary color
146
+ * @property {string} [secondary_color] - The secondary color
147
+ */
148
+
149
+ /**
150
+ * @typedef Comments
151
+ * @property {string} [developer_remark] - Developer remark
152
+ * @property {string} [reviewer_feedback] - Reviewer feedback
153
+ */
154
+
155
+ /**
156
+ * @typedef CommonJS
157
+ * @property {string} [link]
158
+ */
159
+
160
+ /**
161
+ * @typedef Config
162
+ * @property {string} current - The current configuration
163
+ * @property {GlobalSchema} [global_schema]
164
+ * @property {ThemeConfiguration[]} list - A list of configurations
165
+ * @property {Preset} [preset]
166
+ */
167
+
168
+ /**
169
+ * @typedef ContactInfo
170
+ * @property {string[]} [developer_contact] - Developer contact information
171
+ * @property {string} [seller_contact] - Seller contact information
172
+ */
173
+
174
+ /**
175
+ * @typedef CSS
176
+ * @property {string[]} [links]
177
+ */
178
+
179
+ /**
180
+ * @typedef CustomConfig
181
+ * @property {CustomProps} [props]
182
+ */
183
+
184
+ /**
185
+ * @typedef CustomProps
186
+ * @property {string} [button_add_to_cart_color] - The add to cart button color
187
+ * @property {string} [button_add_to_cart_label_color] - The add to cart button
188
+ * label color
189
+ * @property {string} [button_primary_color] - The primary button color
190
+ * @property {string} [button_primary_label_color] - The primary button label color
191
+ * @property {string} [button_secondary_color] - The secondary button color
192
+ * @property {string} [button_secondary_label_color] - The secondary button label color
193
+ * @property {string} [button_tertiary_color] - The tertiary button color
194
+ * @property {string} [button_tertiary_hover_color] - The tertiary button hover color
195
+ * @property {string} [button_tertiary_hover_text_color] - The tertiary button
196
+ * hover text color
197
+ * @property {string} [button_tertiary_label_color] - The tertiary button label color
198
+ * @property {boolean} [disable_cart] - Whether to disable the cart or not
199
+ * @property {string} [footer_bg_color] - The footer background color
200
+ * @property {string} [footer_border_color] - The footer border color
201
+ * @property {string} [footer_nav_hover_color] - The footer navigation hover color
202
+ * @property {string} [footer_text_color] - The footer text color
203
+ * @property {string} [header_bg_color] - The header background color
204
+ * @property {string} [header_border_color] - The header border color
205
+ * @property {string} [header_cart_notification_bg_color] - The header cart
206
+ * notification background color
207
+ * @property {string} [header_cart_notification_text_color] - The header cart
208
+ * notification text color
209
+ * @property {string} [header_icon_color] - The header icon color
210
+ * @property {string} [header_nav_hover_color] - The header navigation hover color
211
+ * @property {string} [header_text_color] - The header text color
212
+ * @property {boolean} [is_menu_below_logo] - Whether the menu is below the logo or not
213
+ * @property {string} [menu_position] - The position of the menu
214
+ * @property {string} [text_body_color] - The text body color
215
+ * @property {string} [text_discount_color] - The text discount color
216
+ * @property {string} [text_heading_link_color] - The text heading link color
217
+ * @property {string} [text_price_color] - The text price color
218
+ * @property {string} [text_sale_price_color] - The text sale price color
219
+ * @property {string} [text_strikethrough_price_color] - The text strikethrough
220
+ * price color
221
+ */
222
+
223
+ /**
224
+ * @typedef DividerStrokeHighlightSetting
225
+ * @property {string} [divider_strokes] - The divider strokes color
226
+ * @property {string} [highlight] - The highlight color
227
+ */
228
+
229
+ /**
230
+ * @typedef Documentation
231
+ * @property {string} [notes] - Documentation notes
232
+ * @property {string} [url] - Documentation URL
233
+ */
234
+
235
+ /**
236
+ * @typedef ExploreInfo
237
+ * @property {string} [description] - Explore feature description
238
+ * @property {string} [title] - Explore feature title
239
+ */
240
+
241
+ /**
242
+ * @typedef Feature
243
+ * @property {string} [category] - Feature category
244
+ * @property {FeatureItem[]} [list]
245
+ */
246
+
247
+ /**
248
+ * @typedef FeatureItem
249
+ * @property {string} [description] - Feature description
250
+ * @property {string} [label] - Feature label
251
+ */
252
+
253
+ /**
254
+ * @typedef Font
255
+ * @property {string} family - The font family
256
+ * @property {FontVariants} variants
257
+ */
258
+
259
+ /**
260
+ * @typedef FontVariant
261
+ * @property {string} file - The URL of the font file
262
+ * @property {string} name - The name of the font variant
263
+ */
264
+
265
+ /**
266
+ * @typedef FontVariants
267
+ * @property {FontVariant} [bold]
268
+ * @property {FontVariant} [light]
269
+ * @property {FontVariant} [medium]
270
+ * @property {FontVariant} [regular]
271
+ * @property {FontVariant} [semi_bold]
272
+ */
273
+
274
+ /**
275
+ * @typedef FooterSetting
276
+ * @property {string} [footer_background] - The footer background color
277
+ * @property {string} [footer_body_text] - The footer body text color
278
+ * @property {string} [footer_bottom_background] - The footer bottom background color
279
+ * @property {string} [footer_heading_text] - The footer heading text color
280
+ * @property {string} [footer_icon] - The footer icon color
281
+ */
282
+
283
+ /**
284
+ * @typedef GeneralSetting
285
+ * @property {ButtonSetting} [button]
286
+ * @property {FooterSetting} [footer]
287
+ * @property {HeaderSetting} [header]
288
+ * @property {SaleDiscountSetting} [sale_discount]
289
+ * @property {TextSetting} [text]
290
+ * @property {ThemeSetting} [theme]
291
+ */
292
+
293
+ /**
294
+ * @typedef GlobalConfig
295
+ * @property {AuthConfig} [auth]
296
+ * @property {PaletteConfig} [palette]
297
+ * @property {StaticConfig} [statics]
298
+ */
299
+
300
+ /**
301
+ * @typedef GlobalSchema
302
+ * @property {Prop[]} [props]
303
+ */
304
+
305
+ /**
306
+ * @typedef HeaderSetting
307
+ * @property {string} [header_background] - The header background color
308
+ * @property {string} [header_icon] - The header icon color
309
+ * @property {string} [header_nav] - The header navigation color
310
+ */
311
+
312
+ /**
313
+ * @typedef Highlight
314
+ * @property {string} [description] - Highlight description
315
+ * @property {string} [image] - Highlight image URL
316
+ * @property {string} [title] - Highlight title
317
+ */
318
+
319
+ /**
320
+ * @typedef ImagePickerProp
321
+ * @property {string} [type] - The type of the property.
322
+ * @property {string} [value] - The value of the image picker property.
323
+ */
324
+
325
+ /**
326
+ * @typedef Images
327
+ * @property {string} [desktop] - The URL of the desktop image
328
+ * @property {string} [mobile] - The URL of the mobile image
329
+ */
330
+
331
+ /**
332
+ * @typedef MarketplaceTheme
333
+ * @property {string} [_id] - Theme ID
334
+ * @property {CarouselItem[]} [carousel]
335
+ * @property {CatalogSize} [catalog_size]
336
+ * @property {Comments} [comments]
337
+ * @property {ContactInfo} [contact]
338
+ * @property {string} [created_at] - Theme creation timestamp
339
+ * @property {string} [description] - Theme description
340
+ * @property {Documentation} [documentation]
341
+ * @property {ExploreInfo} [explore]
342
+ * @property {Feature[]} [features]
343
+ * @property {Highlight[]} [highlights]
344
+ * @property {MarketplaceThemeImages} [images]
345
+ * @property {string[]} [industry] - Industries the theme is suitable for
346
+ * @property {boolean} [is_default] - Indicates if the theme is a default theme
347
+ * @property {boolean} [is_update] - Indicates if the theme is an update
348
+ * @property {string} [name] - Theme name
349
+ * @property {string} [organization_id] - Organization ID
350
+ * @property {PaymentInfo} [payment]
351
+ * @property {Release} [release]
352
+ * @property {string} [slug] - Theme slug
353
+ * @property {string} [src] - Theme source URL
354
+ * @property {string} [status] - Theme status
355
+ * @property {number} [step] - Theme step
356
+ * @property {string} [tagline] - Theme tagline
357
+ * @property {string} [template_theme_id] - Template theme ID
358
+ * @property {string} [updated_at] - Theme update timestamp
359
+ * @property {string} [user_id] - User ID
360
+ * @property {Variation[]} [variations]
361
+ */
362
+
363
+ /**
364
+ * @typedef MarketplaceThemeImages
365
+ * @property {string} [desktop] - Desktop theme image URL
366
+ * @property {string} [mobile] - Mobile theme image URL
367
+ */
368
+
369
+ /**
370
+ * @typedef MarketplaceThemeSchema
371
+ * @property {PaginationSchema} [page]
372
+ * @property {MarketplaceTheme[]} [themes]
373
+ */
374
+
375
+ /**
376
+ * @typedef Meta
377
+ * @property {string} [description] - The description of the theme
378
+ * @property {Images} [images]
379
+ * @property {string[]} [industry] - An array of industries associated with the theme
380
+ * @property {string} [name] - The name of the theme
381
+ * @property {ThemePayment} [payment]
382
+ * @property {Release} [release]
383
+ * @property {string} [slug] - The slug of the theme
384
+ */
385
+
386
+ /**
387
+ * @typedef OverlayPopupSetting
388
+ * @property {string} [dialog_backgroung] - The dialog background color
389
+ * @property {string} [overlay] - The overlay color
390
+ */
391
+
392
+ /**
393
+ * @typedef Page
394
+ * @property {Section[]} [sections]
395
+ * @property {string} [value] - The value of the page.
396
+ */
397
+
398
+ /**
399
+ * @typedef PaginationSchema
400
+ * @property {number} [current]
401
+ * @property {boolean} [has_next]
402
+ * @property {number} [item_total]
403
+ * @property {number} [size]
404
+ * @property {string} [type]
405
+ */
406
+
407
+ /**
408
+ * @typedef PaletteConfig
409
+ * @property {AdvanceSetting} [advance_setting]
410
+ * @property {GeneralSetting} [general_setting]
411
+ */
412
+
413
+ /**
414
+ * @typedef PaymentInfo
415
+ * @property {number} [amount] - Amount of payment
416
+ * @property {boolean} [is_paid] - Indicates if the theme is paid
417
+ */
418
+
419
+ /**
420
+ * @typedef Predicate
421
+ * @property {Route} [route]
422
+ * @property {Screen} [screen]
423
+ * @property {ThemeUserSchema} [user]
424
+ */
425
+
426
+ /**
427
+ * @typedef Preset
428
+ * @property {Page[]} [pages]
429
+ */
430
+
431
+ /**
432
+ * @typedef Prop
433
+ * @property {string} [category] - The category of the property
434
+ * @property {string} [id] - The ID of the property
435
+ * @property {string} [info] - Additional information about the property
436
+ * @property {string} [label] - The label of the property
437
+ * @property {string} [type] - The type of the property
438
+ */
439
+
440
+ /**
441
+ * @typedef RangeProp
442
+ * @property {string} [type] - The type of the property.
443
+ * @property {number} [value] - The value of the range property.
444
+ */
445
+
446
+ /**
447
+ * @typedef Release
448
+ * @property {string} [notes] - The release notes of the theme
449
+ * @property {string} [version] - The version of the theme
450
+ */
451
+
452
+ /**
453
+ * @typedef Route
454
+ * @property {string} [exact_url] - The exact URL of the route.
455
+ * @property {string} [selected] - The selected route.
456
+ */
457
+
458
+ /**
459
+ * @typedef SaleDiscountSetting
460
+ * @property {string} [sale_badge_background] - The sale badge background color
461
+ * @property {string} [sale_badge_text] - The sale badge text color
462
+ * @property {string} [sale_discount_text] - The sale discount text color
463
+ * @property {string} [sale_timer] - The sale timer color
464
+ */
465
+
466
+ /**
467
+ * @typedef Screen
468
+ * @property {boolean} [desktop] - True if the screen is a desktop device.
469
+ * @property {boolean} [mobile] - True if the screen is a mobile device.
470
+ * @property {boolean} [tablet] - True if the screen is a tablet device.
471
+ */
472
+
473
+ /**
474
+ * @typedef Section
475
+ * @property {Block[]} [blocks]
476
+ * @property {string} [name] - The name of the section.
477
+ * @property {Predicate} [predicate]
478
+ * @property {SectionPreset} [preset]
479
+ * @property {SectionProps} [props]
480
+ */
481
+
482
+ /**
483
+ * @typedef SectionItem
484
+ * @property {Object[]} [blocks] - Blocks
485
+ * @property {string} [label] - Label for the section
486
+ * @property {string} [name] - Name of the section
487
+ * @property {Object[]} [props]
488
+ */
489
+
490
+ /**
491
+ * @typedef SectionPreset
492
+ * @property {Block[]} [blocks]
493
+ */
494
+
495
+ /**
496
+ * @typedef SectionProps
497
+ * @property {CheckboxProp} [autoplay]
498
+ * @property {TextProp} [item_margin]
499
+ * @property {RangeProp} [slide_interval]
500
+ * @property {TextProp} [title]
501
+ */
502
+
503
+ /**
504
+ * @typedef StaticConfig
505
+ * @property {StaticProps} [props]
506
+ */
507
+
508
+ /**
509
+ * @typedef StaticProps
510
+ * @property {AuthConfig} [auth]
511
+ * @property {Colors} [colors]
512
+ */
513
+
514
+ /**
515
+ * @typedef TextProp
516
+ * @property {string} [type] - The type of the property.
517
+ * @property {string} [value] - The value of the text property.
518
+ */
519
+
520
+ /**
521
+ * @typedef TextSetting
522
+ * @property {string} [text_body] - The text body color
523
+ * @property {string} [text_heading] - The text heading color
524
+ * @property {string} [text_label] - The text label color
525
+ * @property {string} [text_secondary] - The secondary text color
526
+ */
527
+
528
+ /**
529
+ * @typedef ThemeConfiguration
530
+ * @property {CustomConfig} [custom]
531
+ * @property {GlobalConfig} [global_config]
532
+ * @property {string} [name] - The name of the configuration
533
+ * @property {string[]} [page] - An array of pages
534
+ */
535
+
536
+ /**
537
+ * @typedef ThemePayment
538
+ * @property {number} [amount] - The amount of the theme
539
+ * @property {boolean} [is_paid] - Whether the theme is paid or not
540
+ */
541
+
542
+ /**
543
+ * @typedef ThemeRejectionReasons
544
+ * @property {string} _id - The ID of the theme rejection reasons object
545
+ * @property {string} admin_id - The ID of the admin who rejected the theme
546
+ * @property {string} [created_at] - The date and time when the theme rejection
547
+ * reasons object was created
548
+ * @property {string} [message] - A general message about the rejection reasons
549
+ * @property {string} organization_id - The ID of the organization
550
+ * @property {Object} rejection_reasons
551
+ * @property {string} status - The status of the theme (e.g., rejected)
552
+ * @property {string} theme_id - The ID of the rejected theme
553
+ * @property {string} [updated_at] - The date and time when the theme rejection
554
+ * reasons object was last updated
555
+ * @property {string} user_id - The ID of the user who submitted the theme
556
+ */
557
+
558
+ /**
559
+ * @typedef ThemeSetting
560
+ * @property {string} [page_background] - The page background color
561
+ * @property {string} [theme_accent] - The theme accent color
562
+ */
563
+
564
+ /**
565
+ * @typedef ThemesSchema
566
+ * @property {string} [_id] - The unique identifier of the theme
567
+ * @property {string} [application_id] - The ID of the application
568
+ * @property {boolean} [applied] - Whether the theme has been applied or not
569
+ * @property {Assets} [assets]
570
+ * @property {SectionItem[]} [available_sections] - Available sections information
571
+ * @property {Config} [config]
572
+ * @property {string} [created_at] - The creation timestamp of the theme
573
+ * @property {Font} [font]
574
+ * @property {boolean} [is_private] - Whether the theme is private or not
575
+ * @property {string} [marketplace_theme_id] - The ID of the theme in the marketplace
576
+ * @property {Meta} [meta]
577
+ * @property {string} [name] - The name of the theme
578
+ * @property {Object} [styles] - The styles associated with the theme
579
+ * @property {string[]} [tags] - An array of tags associated with the theme
580
+ * @property {string} [template_theme_id] - The ID of the template theme
581
+ * @property {string} [updated_at] - The last update timestamp of the theme
582
+ * @property {string} [version] - The version of the theme
583
+ */
584
+
585
+ /**
586
+ * @typedef ThemeUserSchema
587
+ * @property {boolean} [anonymous] - True if the user is anonymous.
588
+ * @property {boolean} [authenticated] - True if the user is authenticated.
589
+ */
590
+
591
+ /**
592
+ * @typedef UMDJs
593
+ * @property {string[]} [links]
594
+ */
595
+
596
+ /**
597
+ * @typedef UpdateThemeRequestBody
598
+ * @property {Config} [config]
599
+ * @property {Font} [font]
600
+ */
601
+
602
+ /**
603
+ * @typedef UrlProp
604
+ * @property {string} [type] - The type of the property.
605
+ * @property {string} [value] - The value of the URL property.
606
+ */
607
+
608
+ /**
609
+ * @typedef UserAlertsSetting
610
+ * @property {string} [error_background] - The error background color
611
+ * @property {string} [error_text] - The error text color
612
+ * @property {string} [info_background] - The info background color
613
+ * @property {string} [info_text] - The info text color
614
+ * @property {string} [success_background] - The success background color
615
+ * @property {string} [success_text] - The success text color
616
+ */
617
+
618
+ /**
619
+ * @typedef Variation
620
+ * @property {string} [color] - Variation color
621
+ * @property {string} [demo_url] - Variation demo URL
622
+ * @property {MarketplaceThemeImages} [images]
623
+ * @property {string} [name] - Variation name
624
+ */
625
+
626
+ class ThemePartnerModel {
627
+ /** @returns {AdvanceSetting} */
628
+ static AdvanceSetting() {
629
+ return Joi.object({
630
+ divider_stroke_highlight: ThemePartnerModel.DividerStrokeHighlightSetting(),
631
+ overlay_popup: ThemePartnerModel.OverlayPopupSetting(),
632
+ user_alerts: ThemePartnerModel.UserAlertsSetting(),
633
+ });
634
+ }
635
+
636
+ /** @returns {AllAvailablePageSchema} */
637
+ static AllAvailablePageSchema() {
638
+ return Joi.object({
639
+ pages: Joi.array().items(ThemePartnerModel.AvailablePageSchema()),
640
+ });
641
+ }
642
+
643
+ /** @returns {Assets} */
644
+ static Assets() {
645
+ return Joi.object({
646
+ common_js: ThemePartnerModel.CommonJS(),
647
+ css: ThemePartnerModel.CSS(),
648
+ umd_js: ThemePartnerModel.UMDJs(),
649
+ });
650
+ }
651
+
652
+ /** @returns {AuthConfig} */
653
+ static AuthConfig() {
654
+ return Joi.object({
655
+ show_footer_auth: Joi.boolean(),
656
+ show_header_auth: Joi.boolean(),
657
+ });
658
+ }
659
+
660
+ /** @returns {AvailablePagePredicate} */
661
+ static AvailablePagePredicate() {
662
+ return Joi.object({
663
+ route: ThemePartnerModel.AvailablePageRoutePredicate(),
664
+ screen: ThemePartnerModel.AvailablePageScreenPredicate(),
665
+ user: ThemePartnerModel.AvailablePageUserPredicate(),
666
+ });
667
+ }
668
+
669
+ /** @returns {AvailablePageRoutePredicate} */
670
+ static AvailablePageRoutePredicate() {
671
+ return Joi.object({
672
+ exact_url: Joi.string().allow(""),
673
+ query: Joi.any(),
674
+ selected: Joi.string().allow(""),
675
+ });
676
+ }
677
+
678
+ /** @returns {AvailablePageSchema} */
679
+ static AvailablePageSchema() {
680
+ return Joi.object({
681
+ _id: Joi.string().allow(""),
682
+ path: Joi.string().allow(""),
683
+ props: Joi.array().items(Joi.any()),
684
+ sections: Joi.array().items(
685
+ ThemePartnerModel.AvailablePageSchemaSections()
686
+ ),
687
+ sections_meta: Joi.array().items(
688
+ ThemePartnerModel.AvailablePageSectionMetaAttributes()
689
+ ),
690
+ seo: ThemePartnerModel.AvailablePageSeo(),
691
+ text: Joi.string().allow(""),
692
+ theme: Joi.string().allow(""),
693
+ type: Joi.string().allow(""),
694
+ value: Joi.string().allow(""),
695
+ });
696
+ }
697
+
698
+ /** @returns {AvailablePageSchemaSections} */
699
+ static AvailablePageSchemaSections() {
700
+ return Joi.object({
701
+ blocks: Joi.array().items(Joi.any()),
702
+ label: Joi.string().allow(""),
703
+ name: Joi.string().allow(""),
704
+ predicate: ThemePartnerModel.AvailablePagePredicate(),
705
+ preset: Joi.any(),
706
+ props: Joi.any(),
707
+ });
708
+ }
709
+
710
+ /** @returns {AvailablePageScreenPredicate} */
711
+ static AvailablePageScreenPredicate() {
712
+ return Joi.object({
713
+ desktop: Joi.boolean(),
714
+ mobile: Joi.boolean(),
715
+ tablet: Joi.boolean(),
716
+ });
717
+ }
718
+
719
+ /** @returns {AvailablePageSectionMetaAttributes} */
720
+ static AvailablePageSectionMetaAttributes() {
721
+ return Joi.object({
722
+ attributes: Joi.any(),
723
+ });
724
+ }
725
+
726
+ /** @returns {AvailablePageSeo} */
727
+ static AvailablePageSeo() {
728
+ return Joi.object({
729
+ _id: Joi.string().allow(""),
730
+ description: Joi.string().allow(""),
731
+ title: Joi.string().allow(""),
732
+ });
733
+ }
734
+
735
+ /** @returns {AvailablePageUserPredicate} */
736
+ static AvailablePageUserPredicate() {
737
+ return Joi.object({
738
+ anonymous: Joi.boolean(),
739
+ authenticated: Joi.boolean(),
740
+ });
741
+ }
742
+
743
+ /** @returns {BlitzkriegApiErrorSchema} */
744
+ static BlitzkriegApiErrorSchema() {
745
+ return Joi.object({
746
+ message: Joi.string().allow(""),
747
+ });
748
+ }
749
+
750
+ /** @returns {BlitzkriegInternalServerErrorSchema} */
751
+ static BlitzkriegInternalServerErrorSchema() {
752
+ return Joi.object({
753
+ message: Joi.string().allow(""),
754
+ });
755
+ }
756
+
757
+ /** @returns {Block} */
758
+ static Block() {
759
+ return Joi.object({
760
+ name: Joi.string().allow(""),
761
+ props: ThemePartnerModel.BlockProps(),
762
+ type: Joi.string().allow(""),
763
+ });
764
+ }
765
+
766
+ /** @returns {BlockProps} */
767
+ static BlockProps() {
768
+ return Joi.object({
769
+ image: ThemePartnerModel.ImagePickerProp(),
770
+ slide_link: ThemePartnerModel.UrlProp(),
771
+ });
772
+ }
773
+
774
+ /** @returns {ButtonSetting} */
775
+ static ButtonSetting() {
776
+ return Joi.object({
777
+ button_link: Joi.string().allow(""),
778
+ button_primary: Joi.string().allow(""),
779
+ button_secondary: Joi.string().allow(""),
780
+ });
781
+ }
782
+
783
+ /** @returns {CarouselItem} */
784
+ static CarouselItem() {
785
+ return Joi.object({
786
+ desktop: Joi.string().allow(""),
787
+ mobile: Joi.string().allow(""),
788
+ });
789
+ }
790
+
791
+ /** @returns {CatalogSize} */
792
+ static CatalogSize() {
793
+ return Joi.object({
794
+ max: Joi.number(),
795
+ min: Joi.number(),
796
+ });
797
+ }
798
+
799
+ /** @returns {CheckboxProp} */
800
+ static CheckboxProp() {
801
+ return Joi.object({
802
+ type: Joi.string().allow(""),
803
+ value: Joi.boolean(),
804
+ });
805
+ }
806
+
807
+ /** @returns {Colors} */
808
+ static Colors() {
809
+ return Joi.object({
810
+ accent_color: Joi.string().allow(""),
811
+ bg_color: Joi.string().allow(""),
812
+ button_secondary_color: Joi.string().allow(""),
813
+ link_color: Joi.string().allow(""),
814
+ primary_color: Joi.string().allow(""),
815
+ secondary_color: Joi.string().allow(""),
816
+ });
817
+ }
818
+
819
+ /** @returns {Comments} */
820
+ static Comments() {
821
+ return Joi.object({
822
+ developer_remark: Joi.string().allow(""),
823
+ reviewer_feedback: Joi.string().allow(""),
824
+ });
825
+ }
826
+
827
+ /** @returns {CommonJS} */
828
+ static CommonJS() {
829
+ return Joi.object({
830
+ link: Joi.string().allow(""),
831
+ });
832
+ }
833
+
834
+ /** @returns {Config} */
835
+ static Config() {
836
+ return Joi.object({
837
+ current: Joi.string().allow("").required(),
838
+ global_schema: ThemePartnerModel.GlobalSchema(),
839
+ list: Joi.array()
840
+ .items(ThemePartnerModel.ThemeConfiguration())
841
+ .required(),
842
+ preset: ThemePartnerModel.Preset(),
843
+ });
844
+ }
845
+
846
+ /** @returns {ContactInfo} */
847
+ static ContactInfo() {
848
+ return Joi.object({
849
+ developer_contact: Joi.array().items(Joi.string().allow("")),
850
+ seller_contact: Joi.string().allow(""),
851
+ });
852
+ }
853
+
854
+ /** @returns {CSS} */
855
+ static CSS() {
856
+ return Joi.object({
857
+ links: Joi.array().items(Joi.string().allow("")),
858
+ });
859
+ }
860
+
861
+ /** @returns {CustomConfig} */
862
+ static CustomConfig() {
863
+ return Joi.object({
864
+ props: ThemePartnerModel.CustomProps(),
865
+ });
866
+ }
867
+
868
+ /** @returns {CustomProps} */
869
+ static CustomProps() {
870
+ return Joi.object({
871
+ button_add_to_cart_color: Joi.string().allow(""),
872
+ button_add_to_cart_label_color: Joi.string().allow(""),
873
+ button_primary_color: Joi.string().allow(""),
874
+ button_primary_label_color: Joi.string().allow(""),
875
+ button_secondary_color: Joi.string().allow(""),
876
+ button_secondary_label_color: Joi.string().allow(""),
877
+ button_tertiary_color: Joi.string().allow(""),
878
+ button_tertiary_hover_color: Joi.string().allow(""),
879
+ button_tertiary_hover_text_color: Joi.string().allow(""),
880
+ button_tertiary_label_color: Joi.string().allow(""),
881
+ disable_cart: Joi.boolean(),
882
+ footer_bg_color: Joi.string().allow(""),
883
+ footer_border_color: Joi.string().allow(""),
884
+ footer_nav_hover_color: Joi.string().allow(""),
885
+ footer_text_color: Joi.string().allow(""),
886
+ header_bg_color: Joi.string().allow(""),
887
+ header_border_color: Joi.string().allow(""),
888
+ header_cart_notification_bg_color: Joi.string().allow(""),
889
+ header_cart_notification_text_color: Joi.string().allow(""),
890
+ header_icon_color: Joi.string().allow(""),
891
+ header_nav_hover_color: Joi.string().allow(""),
892
+ header_text_color: Joi.string().allow(""),
893
+ is_menu_below_logo: Joi.boolean(),
894
+ menu_position: Joi.string().allow(""),
895
+ text_body_color: Joi.string().allow(""),
896
+ text_discount_color: Joi.string().allow(""),
897
+ text_heading_link_color: Joi.string().allow(""),
898
+ text_price_color: Joi.string().allow(""),
899
+ text_sale_price_color: Joi.string().allow(""),
900
+ text_strikethrough_price_color: Joi.string().allow(""),
901
+ });
902
+ }
903
+
904
+ /** @returns {DividerStrokeHighlightSetting} */
905
+ static DividerStrokeHighlightSetting() {
906
+ return Joi.object({
907
+ divider_strokes: Joi.string().allow(""),
908
+ highlight: Joi.string().allow(""),
909
+ });
910
+ }
911
+
912
+ /** @returns {Documentation} */
913
+ static Documentation() {
914
+ return Joi.object({
915
+ notes: Joi.string().allow(""),
916
+ url: Joi.string().allow(""),
917
+ });
918
+ }
919
+
920
+ /** @returns {ExploreInfo} */
921
+ static ExploreInfo() {
922
+ return Joi.object({
923
+ description: Joi.string().allow(""),
924
+ title: Joi.string().allow(""),
925
+ });
926
+ }
927
+
928
+ /** @returns {Feature} */
929
+ static Feature() {
930
+ return Joi.object({
931
+ category: Joi.string().allow(""),
932
+ list: Joi.array().items(ThemePartnerModel.FeatureItem()),
933
+ });
934
+ }
935
+
936
+ /** @returns {FeatureItem} */
937
+ static FeatureItem() {
938
+ return Joi.object({
939
+ description: Joi.string().allow(""),
940
+ label: Joi.string().allow(""),
941
+ });
942
+ }
943
+
944
+ /** @returns {Font} */
945
+ static Font() {
946
+ return Joi.object({
947
+ family: Joi.string().allow("").required(),
948
+ variants: ThemePartnerModel.FontVariants().required(),
949
+ });
950
+ }
951
+
952
+ /** @returns {FontVariant} */
953
+ static FontVariant() {
954
+ return Joi.object({
955
+ file: Joi.string().allow("").required(),
956
+ name: Joi.string().allow("").required(),
957
+ });
958
+ }
959
+
960
+ /** @returns {FontVariants} */
961
+ static FontVariants() {
962
+ return Joi.object({
963
+ bold: ThemePartnerModel.FontVariant(),
964
+ light: ThemePartnerModel.FontVariant(),
965
+ medium: ThemePartnerModel.FontVariant(),
966
+ regular: ThemePartnerModel.FontVariant(),
967
+ semi_bold: ThemePartnerModel.FontVariant(),
968
+ });
969
+ }
970
+
971
+ /** @returns {FooterSetting} */
972
+ static FooterSetting() {
973
+ return Joi.object({
974
+ footer_background: Joi.string().allow(""),
975
+ footer_body_text: Joi.string().allow(""),
976
+ footer_bottom_background: Joi.string().allow(""),
977
+ footer_heading_text: Joi.string().allow(""),
978
+ footer_icon: Joi.string().allow(""),
979
+ });
980
+ }
981
+
982
+ /** @returns {GeneralSetting} */
983
+ static GeneralSetting() {
984
+ return Joi.object({
985
+ button: ThemePartnerModel.ButtonSetting(),
986
+ footer: ThemePartnerModel.FooterSetting(),
987
+ header: ThemePartnerModel.HeaderSetting(),
988
+ sale_discount: ThemePartnerModel.SaleDiscountSetting(),
989
+ text: ThemePartnerModel.TextSetting(),
990
+ theme: ThemePartnerModel.ThemeSetting(),
991
+ });
992
+ }
993
+
994
+ /** @returns {GlobalConfig} */
995
+ static GlobalConfig() {
996
+ return Joi.object({
997
+ auth: ThemePartnerModel.AuthConfig(),
998
+ palette: ThemePartnerModel.PaletteConfig(),
999
+ statics: ThemePartnerModel.StaticConfig(),
1000
+ });
1001
+ }
1002
+
1003
+ /** @returns {GlobalSchema} */
1004
+ static GlobalSchema() {
1005
+ return Joi.object({
1006
+ props: Joi.array().items(ThemePartnerModel.Prop()),
1007
+ });
1008
+ }
1009
+
1010
+ /** @returns {HeaderSetting} */
1011
+ static HeaderSetting() {
1012
+ return Joi.object({
1013
+ header_background: Joi.string().allow(""),
1014
+ header_icon: Joi.string().allow(""),
1015
+ header_nav: Joi.string().allow(""),
1016
+ });
1017
+ }
1018
+
1019
+ /** @returns {Highlight} */
1020
+ static Highlight() {
1021
+ return Joi.object({
1022
+ description: Joi.string().allow(""),
1023
+ image: Joi.string().allow(""),
1024
+ title: Joi.string().allow(""),
1025
+ });
1026
+ }
1027
+
1028
+ /** @returns {ImagePickerProp} */
1029
+ static ImagePickerProp() {
1030
+ return Joi.object({
1031
+ type: Joi.string().allow(""),
1032
+ value: Joi.string().allow(""),
1033
+ });
1034
+ }
1035
+
1036
+ /** @returns {Images} */
1037
+ static Images() {
1038
+ return Joi.object({
1039
+ desktop: Joi.string().allow(""),
1040
+ mobile: Joi.string().allow(""),
1041
+ });
1042
+ }
1043
+
1044
+ /** @returns {MarketplaceTheme} */
1045
+ static MarketplaceTheme() {
1046
+ return Joi.object({
1047
+ _id: Joi.string().allow(""),
1048
+ carousel: Joi.array().items(ThemePartnerModel.CarouselItem()),
1049
+ catalog_size: ThemePartnerModel.CatalogSize(),
1050
+ comments: ThemePartnerModel.Comments(),
1051
+ contact: ThemePartnerModel.ContactInfo(),
1052
+ created_at: Joi.string().allow(""),
1053
+ description: Joi.string().allow(""),
1054
+ documentation: ThemePartnerModel.Documentation(),
1055
+ explore: ThemePartnerModel.ExploreInfo(),
1056
+ features: Joi.array().items(ThemePartnerModel.Feature()),
1057
+ highlights: Joi.array().items(ThemePartnerModel.Highlight()),
1058
+ images: ThemePartnerModel.MarketplaceThemeImages(),
1059
+ industry: Joi.array().items(Joi.string().allow("")),
1060
+ is_default: Joi.boolean(),
1061
+ is_update: Joi.boolean(),
1062
+ name: Joi.string().allow(""),
1063
+ organization_id: Joi.string().allow(""),
1064
+ payment: ThemePartnerModel.PaymentInfo(),
1065
+ release: ThemePartnerModel.Release(),
1066
+ slug: Joi.string().allow(""),
1067
+ src: Joi.string().allow(""),
1068
+ status: Joi.string().allow(""),
1069
+ step: Joi.number(),
1070
+ tagline: Joi.string().allow(""),
1071
+ template_theme_id: Joi.string().allow(""),
1072
+ updated_at: Joi.string().allow(""),
1073
+ user_id: Joi.string().allow(""),
1074
+ variations: Joi.array().items(ThemePartnerModel.Variation()),
1075
+ });
1076
+ }
1077
+
1078
+ /** @returns {MarketplaceThemeImages} */
1079
+ static MarketplaceThemeImages() {
1080
+ return Joi.object({
1081
+ desktop: Joi.string().allow(""),
1082
+ mobile: Joi.string().allow(""),
1083
+ });
1084
+ }
1085
+
1086
+ /** @returns {MarketplaceThemeSchema} */
1087
+ static MarketplaceThemeSchema() {
1088
+ return Joi.object({
1089
+ page: ThemePartnerModel.PaginationSchema(),
1090
+ themes: Joi.array().items(ThemePartnerModel.MarketplaceTheme()),
1091
+ });
1092
+ }
1093
+
1094
+ /** @returns {Meta} */
1095
+ static Meta() {
1096
+ return Joi.object({
1097
+ description: Joi.string().allow(""),
1098
+ images: ThemePartnerModel.Images(),
1099
+ industry: Joi.array().items(Joi.string().allow("")),
1100
+ name: Joi.string().allow(""),
1101
+ payment: ThemePartnerModel.ThemePayment(),
1102
+ release: ThemePartnerModel.Release(),
1103
+ slug: Joi.string().allow(""),
1104
+ });
1105
+ }
1106
+
1107
+ /** @returns {OverlayPopupSetting} */
1108
+ static OverlayPopupSetting() {
1109
+ return Joi.object({
1110
+ dialog_backgroung: Joi.string().allow(""),
1111
+ overlay: Joi.string().allow(""),
1112
+ });
1113
+ }
1114
+
1115
+ /** @returns {Page} */
1116
+ static Page() {
1117
+ return Joi.object({
1118
+ sections: Joi.array().items(ThemePartnerModel.Section()),
1119
+ value: Joi.string().allow(""),
1120
+ });
1121
+ }
1122
+
1123
+ /** @returns {PaginationSchema} */
1124
+ static PaginationSchema() {
1125
+ return Joi.object({
1126
+ current: Joi.number(),
1127
+ has_next: Joi.boolean(),
1128
+ item_total: Joi.number(),
1129
+ size: Joi.number(),
1130
+ type: Joi.string().allow(""),
1131
+ });
1132
+ }
1133
+
1134
+ /** @returns {PaletteConfig} */
1135
+ static PaletteConfig() {
1136
+ return Joi.object({
1137
+ advance_setting: ThemePartnerModel.AdvanceSetting(),
1138
+ general_setting: ThemePartnerModel.GeneralSetting(),
1139
+ });
1140
+ }
1141
+
1142
+ /** @returns {PaymentInfo} */
1143
+ static PaymentInfo() {
1144
+ return Joi.object({
1145
+ amount: Joi.number(),
1146
+ is_paid: Joi.boolean(),
1147
+ });
1148
+ }
1149
+
1150
+ /** @returns {Predicate} */
1151
+ static Predicate() {
1152
+ return Joi.object({
1153
+ route: ThemePartnerModel.Route(),
1154
+ screen: ThemePartnerModel.Screen(),
1155
+ user: ThemePartnerModel.ThemeUserSchema(),
1156
+ });
1157
+ }
1158
+
1159
+ /** @returns {Preset} */
1160
+ static Preset() {
1161
+ return Joi.object({
1162
+ pages: Joi.array().items(ThemePartnerModel.Page()),
1163
+ });
1164
+ }
1165
+
1166
+ /** @returns {Prop} */
1167
+ static Prop() {
1168
+ return Joi.object({
1169
+ category: Joi.string().allow(""),
1170
+ id: Joi.string().allow(""),
1171
+ info: Joi.string().allow(""),
1172
+ label: Joi.string().allow(""),
1173
+ type: Joi.string().allow(""),
1174
+ });
1175
+ }
1176
+
1177
+ /** @returns {RangeProp} */
1178
+ static RangeProp() {
1179
+ return Joi.object({
1180
+ type: Joi.string().allow(""),
1181
+ value: Joi.number(),
1182
+ });
1183
+ }
1184
+
1185
+ /** @returns {Release} */
1186
+ static Release() {
1187
+ return Joi.object({
1188
+ notes: Joi.string().allow(""),
1189
+ version: Joi.string().allow(""),
1190
+ });
1191
+ }
1192
+
1193
+ /** @returns {Route} */
1194
+ static Route() {
1195
+ return Joi.object({
1196
+ exact_url: Joi.string().allow(""),
1197
+ selected: Joi.string().allow(""),
1198
+ });
1199
+ }
1200
+
1201
+ /** @returns {SaleDiscountSetting} */
1202
+ static SaleDiscountSetting() {
1203
+ return Joi.object({
1204
+ sale_badge_background: Joi.string().allow(""),
1205
+ sale_badge_text: Joi.string().allow(""),
1206
+ sale_discount_text: Joi.string().allow(""),
1207
+ sale_timer: Joi.string().allow(""),
1208
+ });
1209
+ }
1210
+
1211
+ /** @returns {Screen} */
1212
+ static Screen() {
1213
+ return Joi.object({
1214
+ desktop: Joi.boolean(),
1215
+ mobile: Joi.boolean(),
1216
+ tablet: Joi.boolean(),
1217
+ });
1218
+ }
1219
+
1220
+ /** @returns {Section} */
1221
+ static Section() {
1222
+ return Joi.object({
1223
+ blocks: Joi.array().items(ThemePartnerModel.Block()),
1224
+ name: Joi.string().allow(""),
1225
+ predicate: ThemePartnerModel.Predicate(),
1226
+ preset: ThemePartnerModel.SectionPreset(),
1227
+ props: ThemePartnerModel.SectionProps(),
1228
+ });
1229
+ }
1230
+
1231
+ /** @returns {SectionItem} */
1232
+ static SectionItem() {
1233
+ return Joi.object({
1234
+ blocks: Joi.array().items(Joi.any()),
1235
+ label: Joi.string().allow(""),
1236
+ name: Joi.string().allow(""),
1237
+ props: Joi.array().items(Joi.any()),
1238
+ });
1239
+ }
1240
+
1241
+ /** @returns {SectionPreset} */
1242
+ static SectionPreset() {
1243
+ return Joi.object({
1244
+ blocks: Joi.array().items(ThemePartnerModel.Block()),
1245
+ });
1246
+ }
1247
+
1248
+ /** @returns {SectionProps} */
1249
+ static SectionProps() {
1250
+ return Joi.object({
1251
+ autoplay: ThemePartnerModel.CheckboxProp(),
1252
+ item_margin: ThemePartnerModel.TextProp(),
1253
+ slide_interval: ThemePartnerModel.RangeProp(),
1254
+ title: ThemePartnerModel.TextProp(),
1255
+ });
1256
+ }
1257
+
1258
+ /** @returns {StaticConfig} */
1259
+ static StaticConfig() {
1260
+ return Joi.object({
1261
+ props: ThemePartnerModel.StaticProps(),
1262
+ });
1263
+ }
1264
+
1265
+ /** @returns {StaticProps} */
1266
+ static StaticProps() {
1267
+ return Joi.object({
1268
+ auth: ThemePartnerModel.AuthConfig(),
1269
+ colors: ThemePartnerModel.Colors(),
1270
+ });
1271
+ }
1272
+
1273
+ /** @returns {TextProp} */
1274
+ static TextProp() {
1275
+ return Joi.object({
1276
+ type: Joi.string().allow(""),
1277
+ value: Joi.string().allow(""),
1278
+ });
1279
+ }
1280
+
1281
+ /** @returns {TextSetting} */
1282
+ static TextSetting() {
1283
+ return Joi.object({
1284
+ text_body: Joi.string().allow(""),
1285
+ text_heading: Joi.string().allow(""),
1286
+ text_label: Joi.string().allow(""),
1287
+ text_secondary: Joi.string().allow(""),
1288
+ });
1289
+ }
1290
+
1291
+ /** @returns {ThemeConfiguration} */
1292
+ static ThemeConfiguration() {
1293
+ return Joi.object({
1294
+ custom: ThemePartnerModel.CustomConfig(),
1295
+ global_config: ThemePartnerModel.GlobalConfig(),
1296
+ name: Joi.string().allow(""),
1297
+ page: Joi.array().items(Joi.string().allow("")),
1298
+ });
1299
+ }
1300
+
1301
+ /** @returns {ThemePayment} */
1302
+ static ThemePayment() {
1303
+ return Joi.object({
1304
+ amount: Joi.number(),
1305
+ is_paid: Joi.boolean(),
1306
+ });
1307
+ }
1308
+
1309
+ /** @returns {ThemeRejectionReasons} */
1310
+ static ThemeRejectionReasons() {
1311
+ return Joi.object({
1312
+ _id: Joi.string().allow("").required(),
1313
+ admin_id: Joi.string().allow("").required(),
1314
+ created_at: Joi.string().allow(""),
1315
+ message: Joi.string().allow(""),
1316
+ organization_id: Joi.string().allow("").required(),
1317
+ rejection_reasons: Joi.object().pattern(/\S/, Joi.any()).required(),
1318
+ status: Joi.string().allow("").required(),
1319
+ theme_id: Joi.string().allow("").required(),
1320
+ updated_at: Joi.string().allow(""),
1321
+ user_id: Joi.string().allow("").required(),
1322
+ });
1323
+ }
1324
+
1325
+ /** @returns {ThemeSetting} */
1326
+ static ThemeSetting() {
1327
+ return Joi.object({
1328
+ page_background: Joi.string().allow(""),
1329
+ theme_accent: Joi.string().allow(""),
1330
+ });
1331
+ }
1332
+
1333
+ /** @returns {ThemesSchema} */
1334
+ static ThemesSchema() {
1335
+ return Joi.object({
1336
+ _id: Joi.string().allow(""),
1337
+ application_id: Joi.string().allow(""),
1338
+ applied: Joi.boolean(),
1339
+ assets: ThemePartnerModel.Assets(),
1340
+ available_sections: Joi.array().items(ThemePartnerModel.SectionItem()),
1341
+ config: ThemePartnerModel.Config(),
1342
+ created_at: Joi.string().allow(""),
1343
+ font: ThemePartnerModel.Font(),
1344
+ is_private: Joi.boolean(),
1345
+ marketplace_theme_id: Joi.string().allow(""),
1346
+ meta: ThemePartnerModel.Meta(),
1347
+ name: Joi.string().allow(""),
1348
+ styles: Joi.any(),
1349
+ tags: Joi.array().items(Joi.string().allow("")),
1350
+ template_theme_id: Joi.string().allow(""),
1351
+ updated_at: Joi.string().allow(""),
1352
+ version: Joi.string().allow(""),
1353
+ });
1354
+ }
1355
+
1356
+ /** @returns {ThemeUserSchema} */
1357
+ static ThemeUserSchema() {
1358
+ return Joi.object({
1359
+ anonymous: Joi.boolean(),
1360
+ authenticated: Joi.boolean(),
1361
+ });
1362
+ }
1363
+
1364
+ /** @returns {UMDJs} */
1365
+ static UMDJs() {
1366
+ return Joi.object({
1367
+ links: Joi.array().items(Joi.string().allow("")),
1368
+ });
1369
+ }
1370
+
1371
+ /** @returns {UpdateThemeRequestBody} */
1372
+ static UpdateThemeRequestBody() {
1373
+ return Joi.object({
1374
+ config: ThemePartnerModel.Config(),
1375
+ font: ThemePartnerModel.Font(),
1376
+ });
1377
+ }
1378
+
1379
+ /** @returns {UrlProp} */
1380
+ static UrlProp() {
1381
+ return Joi.object({
1382
+ type: Joi.string().allow(""),
1383
+ value: Joi.string().allow(""),
1384
+ });
1385
+ }
1386
+
1387
+ /** @returns {UserAlertsSetting} */
1388
+ static UserAlertsSetting() {
1389
+ return Joi.object({
1390
+ error_background: Joi.string().allow(""),
1391
+ error_text: Joi.string().allow(""),
1392
+ info_background: Joi.string().allow(""),
1393
+ info_text: Joi.string().allow(""),
1394
+ success_background: Joi.string().allow(""),
1395
+ success_text: Joi.string().allow(""),
1396
+ });
1397
+ }
1398
+
1399
+ /** @returns {Variation} */
1400
+ static Variation() {
1401
+ return Joi.object({
1402
+ color: Joi.string().allow(""),
1403
+ demo_url: Joi.string().allow(""),
1404
+ images: ThemePartnerModel.MarketplaceThemeImages(),
1405
+ name: Joi.string().allow(""),
1406
+ });
1407
+ }
1408
+ }
1409
+ module.exports = ThemePartnerModel;