@gofynd/fdk-client-javascript 1.4.1 → 1.4.2-beta.10

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