@gofynd/fdk-client-javascript 1.4.2-beta.2 → 1.4.2-beta.3

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