@gofynd/fdk-client-javascript 1.4.15-beta.1 → 1.4.15-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 (154) hide show
  1. package/README.md +2 -2
  2. package/application.d.ts +1 -2
  3. package/application.js +2 -3
  4. package/index.d.ts +1 -2
  5. package/index.js +7 -1
  6. package/package.json +2 -3
  7. package/sdk/application/ApplicationClient.js +0 -18
  8. package/sdk/application/Cart/CartApplicationClient.d.ts +55 -90
  9. package/sdk/application/Cart/CartApplicationClient.js +60 -1185
  10. package/sdk/application/Catalog/CatalogApplicationClient.d.ts +80 -142
  11. package/sdk/application/Catalog/CatalogApplicationClient.js +148 -1293
  12. package/sdk/application/Common/CommonApplicationClient.d.ts +4 -8
  13. package/sdk/application/Common/CommonApplicationClient.js +5 -89
  14. package/sdk/application/Communication/CommunicationApplicationClient.d.ts +6 -19
  15. package/sdk/application/Communication/CommunicationApplicationClient.js +6 -145
  16. package/sdk/application/Configuration/ConfigurationApplicationClient.d.ts +32 -73
  17. package/sdk/application/Configuration/ConfigurationApplicationClient.js +31 -718
  18. package/sdk/application/Content/ContentApplicationClient.d.ts +46 -78
  19. package/sdk/application/Content/ContentApplicationClient.js +77 -914
  20. package/sdk/application/FileStorage/FileStorageApplicationClient.d.ts +9 -12
  21. package/sdk/application/FileStorage/FileStorageApplicationClient.js +22 -125
  22. package/sdk/application/Lead/LeadApplicationClient.d.ts +10 -18
  23. package/sdk/application/Lead/LeadApplicationClient.js +32 -202
  24. package/sdk/application/Logistic/LogisticApplicationClient.d.ts +22 -39
  25. package/sdk/application/Logistic/LogisticApplicationClient.js +50 -478
  26. package/sdk/application/Order/OrderApplicationClient.d.ts +22 -42
  27. package/sdk/application/Order/OrderApplicationClient.js +86 -472
  28. package/sdk/application/Payment/PaymentApplicationClient.d.ts +92 -212
  29. package/sdk/application/Payment/PaymentApplicationClient.js +57 -2102
  30. package/sdk/application/Rewards/RewardsApplicationClient.d.ts +14 -28
  31. package/sdk/application/Rewards/RewardsApplicationClient.js +16 -305
  32. package/sdk/application/Share/ShareApplicationClient.d.ts +14 -24
  33. package/sdk/application/Share/ShareApplicationClient.js +34 -294
  34. package/sdk/application/Theme/ThemeApplicationClient.d.ts +8 -14
  35. package/sdk/application/Theme/ThemeApplicationClient.js +28 -162
  36. package/sdk/application/User/UserApplicationClient.d.ts +85 -136
  37. package/sdk/application/User/UserApplicationClient.js +45 -1815
  38. package/sdk/application/Webhook/WebhookApplicationClient.d.ts +2 -5
  39. package/sdk/application/Webhook/WebhookApplicationClient.js +4 -47
  40. package/sdk/application/index.d.ts +0 -18
  41. package/sdk/application/index.js +0 -33
  42. package/sdk/common/Utility.d.ts +1 -1
  43. package/sdk/common/Utility.js +10 -7
  44. package/sdk/common/Validator.d.ts +1 -0
  45. package/sdk/common/Validator.js +20 -0
  46. package/sdk/common/utils.d.ts +0 -1
  47. package/sdk/common/utils.js +0 -14
  48. package/sdk/partner/FileStorage/FileStoragePartnerModel.d.ts +2 -0
  49. package/sdk/partner/FileStorage/FileStoragePartnerModel.js +2 -0
  50. package/sdk/partner/OAuthClient.js +1 -0
  51. package/sdk/partner/Theme/ThemePartnerModel.d.ts +3 -40
  52. package/sdk/partner/Theme/ThemePartnerModel.js +2 -24
  53. package/sdk/platform/Cart/CartPlatformModel.d.ts +28 -0
  54. package/sdk/platform/Cart/CartPlatformModel.js +12 -0
  55. package/sdk/platform/Catalog/CatalogPlatformModel.d.ts +0 -7
  56. package/sdk/platform/Catalog/CatalogPlatformModel.js +1 -4
  57. package/sdk/platform/Configuration/ConfigurationPlatformModel.d.ts +14 -0
  58. package/sdk/platform/Configuration/ConfigurationPlatformModel.js +6 -0
  59. package/sdk/platform/FileStorage/FileStoragePlatformApplicationClient.d.ts +3 -1
  60. package/sdk/platform/FileStorage/FileStoragePlatformApplicationClient.js +3 -0
  61. package/sdk/platform/FileStorage/FileStoragePlatformClient.d.ts +3 -1
  62. package/sdk/platform/FileStorage/FileStoragePlatformClient.js +3 -0
  63. package/sdk/platform/FileStorage/FileStoragePlatformModel.d.ts +16 -1
  64. package/sdk/platform/FileStorage/FileStoragePlatformModel.js +20 -0
  65. package/sdk/platform/Order/OrderPlatformApplicationClient.d.ts +0 -10
  66. package/sdk/platform/Order/OrderPlatformApplicationClient.js +0 -92
  67. package/sdk/platform/Order/OrderPlatformApplicationValidator.d.ts +1 -28
  68. package/sdk/platform/Order/OrderPlatformApplicationValidator.js +0 -18
  69. package/sdk/platform/Order/OrderPlatformClient.d.ts +10 -0
  70. package/sdk/platform/Order/OrderPlatformClient.js +99 -0
  71. package/sdk/platform/Order/OrderPlatformModel.d.ts +7 -0
  72. package/sdk/platform/Order/OrderPlatformModel.js +3 -0
  73. package/sdk/platform/Order/OrderPlatformValidator.d.ts +33 -1
  74. package/sdk/platform/Order/OrderPlatformValidator.js +20 -0
  75. package/sdk/platform/Serviceability/ServiceabilityPlatformClient.d.ts +1 -1
  76. package/sdk/platform/Serviceability/ServiceabilityPlatformClient.js +4 -4
  77. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.d.ts +56 -19
  78. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.js +42 -18
  79. package/sdk/platform/Serviceability/ServiceabilityPlatformValidator.d.ts +3 -3
  80. package/sdk/platform/Serviceability/ServiceabilityPlatformValidator.js +2 -2
  81. package/sdk/platform/Theme/ThemePlatformModel.d.ts +3 -40
  82. package/sdk/platform/Theme/ThemePlatformModel.js +2 -24
  83. package/sdk/public/Configuration/ConfigurationPublicClient.js +5 -2
  84. package/sdk/public/Content/ContentPublicClient.d.ts +1 -1
  85. package/sdk/public/Content/ContentPublicClient.js +14 -2
  86. package/sdk/public/Partner/PartnerPublicClient.d.ts +1 -1
  87. package/sdk/public/Partner/PartnerPublicClient.js +14 -2
  88. package/sdk/public/Webhook/WebhookPublicClient.js +5 -2
  89. package/sdk/application/Cart/CartApplicationModel.d.ts +0 -3994
  90. package/sdk/application/Cart/CartApplicationModel.js +0 -2497
  91. package/sdk/application/Cart/CartApplicationValidator.d.ts +0 -769
  92. package/sdk/application/Cart/CartApplicationValidator.js +0 -530
  93. package/sdk/application/Catalog/CatalogApplicationModel.d.ts +0 -3857
  94. package/sdk/application/Catalog/CatalogApplicationModel.js +0 -2629
  95. package/sdk/application/Catalog/CatalogApplicationValidator.d.ts +0 -791
  96. package/sdk/application/Catalog/CatalogApplicationValidator.js +0 -551
  97. package/sdk/application/Common/CommonApplicationModel.d.ts +0 -449
  98. package/sdk/application/Common/CommonApplicationModel.js +0 -308
  99. package/sdk/application/Common/CommonApplicationValidator.d.ts +0 -46
  100. package/sdk/application/Common/CommonApplicationValidator.js +0 -38
  101. package/sdk/application/Communication/CommunicationApplicationModel.d.ts +0 -293
  102. package/sdk/application/Communication/CommunicationApplicationModel.js +0 -201
  103. package/sdk/application/Communication/CommunicationApplicationValidator.d.ts +0 -29
  104. package/sdk/application/Communication/CommunicationApplicationValidator.js +0 -38
  105. package/sdk/application/Configuration/ConfigurationApplicationModel.d.ts +0 -2556
  106. package/sdk/application/Configuration/ConfigurationApplicationModel.js +0 -1887
  107. package/sdk/application/Configuration/ConfigurationApplicationValidator.d.ts +0 -179
  108. package/sdk/application/Configuration/ConfigurationApplicationValidator.js +0 -176
  109. package/sdk/application/Content/ContentApplicationModel.d.ts +0 -2133
  110. package/sdk/application/Content/ContentApplicationModel.js +0 -1589
  111. package/sdk/application/Content/ContentApplicationValidator.d.ts +0 -284
  112. package/sdk/application/Content/ContentApplicationValidator.js +0 -264
  113. package/sdk/application/FileStorage/FileStorageApplicationModel.d.ts +0 -272
  114. package/sdk/application/FileStorage/FileStorageApplicationModel.js +0 -190
  115. package/sdk/application/FileStorage/FileStorageApplicationValidator.d.ts +0 -56
  116. package/sdk/application/FileStorage/FileStorageApplicationValidator.js +0 -53
  117. package/sdk/application/Lead/LeadApplicationModel.d.ts +0 -590
  118. package/sdk/application/Lead/LeadApplicationModel.js +0 -480
  119. package/sdk/application/Lead/LeadApplicationValidator.d.ts +0 -68
  120. package/sdk/application/Lead/LeadApplicationValidator.js +0 -71
  121. package/sdk/application/Logistic/LogisticApplicationModel.d.ts +0 -1675
  122. package/sdk/application/Logistic/LogisticApplicationModel.js +0 -1121
  123. package/sdk/application/Logistic/LogisticApplicationValidator.d.ts +0 -254
  124. package/sdk/application/Logistic/LogisticApplicationValidator.js +0 -190
  125. package/sdk/application/Order/OrderApplicationModel.d.ts +0 -2296
  126. package/sdk/application/Order/OrderApplicationModel.js +0 -1471
  127. package/sdk/application/Order/OrderApplicationValidator.d.ts +0 -265
  128. package/sdk/application/Order/OrderApplicationValidator.js +0 -197
  129. package/sdk/application/Payment/PaymentApplicationModel.d.ts +0 -4058
  130. package/sdk/application/Payment/PaymentApplicationModel.js +0 -2630
  131. package/sdk/application/Payment/PaymentApplicationValidator.d.ts +0 -576
  132. package/sdk/application/Payment/PaymentApplicationValidator.js +0 -594
  133. package/sdk/application/Rewards/RewardsApplicationModel.d.ts +0 -365
  134. package/sdk/application/Rewards/RewardsApplicationModel.js +0 -396
  135. package/sdk/application/Rewards/RewardsApplicationValidator.d.ts +0 -73
  136. package/sdk/application/Rewards/RewardsApplicationValidator.js +0 -84
  137. package/sdk/application/Share/ShareApplicationModel.d.ts +0 -339
  138. package/sdk/application/Share/ShareApplicationModel.js +0 -234
  139. package/sdk/application/Share/ShareApplicationValidator.d.ts +0 -90
  140. package/sdk/application/Share/ShareApplicationValidator.js +0 -91
  141. package/sdk/application/Theme/ThemeApplicationModel.d.ts +0 -1713
  142. package/sdk/application/Theme/ThemeApplicationModel.js +0 -1426
  143. package/sdk/application/Theme/ThemeApplicationValidator.d.ts +0 -66
  144. package/sdk/application/Theme/ThemeApplicationValidator.js +0 -58
  145. package/sdk/application/User/UserApplicationModel.d.ts +0 -1943
  146. package/sdk/application/User/UserApplicationModel.js +0 -1382
  147. package/sdk/application/User/UserApplicationValidator.d.ts +0 -560
  148. package/sdk/application/User/UserApplicationValidator.js +0 -573
  149. package/sdk/application/Webhook/WebhookApplicationModel.d.ts +0 -52
  150. package/sdk/application/Webhook/WebhookApplicationModel.js +0 -46
  151. package/sdk/application/Webhook/WebhookApplicationValidator.d.ts +0 -16
  152. package/sdk/application/Webhook/WebhookApplicationValidator.js +0 -19
  153. package/sdk/common/Clickstream.d.ts +0 -1
  154. package/sdk/common/Clickstream.js +0 -464
@@ -1,1589 +0,0 @@
1
- const Joi = require("joi");
2
-
3
- /**
4
- * @typedef ApplicationLegal
5
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
6
- * @property {string} [tnc] - Content for Terms and Conditions page on storefront.
7
- * @property {string} [policy] - Content for Privacy Policy page on storefront.
8
- * @property {string} [shipping] - Content for Shipping Policy page on storefront.
9
- * @property {string} [returns] - Content for Return policy page on storefront.
10
- * @property {ApplicationLegalFAQ[]} [faq] - FAQs of an application.
11
- * @property {string} [_id] - Unique identifier of an entry.
12
- * @property {string} [updated_at] - Timestamp which represent when was the last
13
- * time when data was updated.
14
- * @property {string} [created_at] - Timestamp which represent the time when
15
- * data was created.
16
- */
17
-
18
- /**
19
- * @typedef ApplicationLegalFAQ
20
- * @property {string} [question] - The contents of a question of a FAQ.
21
- * @property {string} [answer] - The contents of a answer of a FAQ.
22
- */
23
-
24
- /**
25
- * @typedef SeoComponent
26
- * @property {SeoSchema} [seo]
27
- */
28
-
29
- /**
30
- * @typedef SeoSchema
31
- * @property {string} [app] - Application ID - Identifier for a Sales channel.
32
- * @property {string} [_id] - Unique identifier of an entry.
33
- * @property {string} [robots_txt] - Contents of robots.txt file of a sales channel.
34
- * @property {boolean} [sitemap_enabled] - Whether sitemaps is enabled or not
35
- * for a sales channel's website.
36
- * @property {string} [additonal_sitemap] - Contents of additional sitemap.
37
- * @property {boolean} [cannonical_enabled] - Whether canonical tags is enabled
38
- * or not for a sales channel's website.
39
- * @property {CustomMetaTag[]} [custom_meta_tags] - Custom meta tags for a sales
40
- * channel website.
41
- * @property {Detail} [details]
42
- * @property {string} [created_at] - Timestamp which represent the time when
43
- * data was created.
44
- * @property {string} [updated_at] - Timestamp which represent when was the last
45
- * time when data was updated.
46
- */
47
-
48
- /**
49
- * @typedef CustomMetaTag
50
- * @property {string} [name] - Name of the custom meta tag group.
51
- * @property {string} [content] - Contents of the custom meta tag group.
52
- * @property {string} [_id] - Unique identifier of an entry.
53
- */
54
-
55
- /**
56
- * @typedef Detail
57
- * @property {string} [title] - Contents of the og:title of a sales channel website.
58
- * @property {string} [description] - Contents of the og:description of a sales
59
- * channel website.
60
- * @property {string} [image_url] - URL of the og:image of a sales channel website.
61
- */
62
-
63
- /**
64
- * @typedef SeoSchemaComponent
65
- * @property {SEOSchemaMarkupTemplate[]} [items] - List of SEO Markup Schemas
66
- * for a sales channel website.
67
- */
68
-
69
- /**
70
- * @typedef SEOSchemaMarkupTemplate
71
- * @property {string} [id] - Unique identifier for an entry.
72
- * @property {string} [title] - Title of the SEO Schema template.
73
- * @property {string} [page_type] - Page Type for the SEO Schema Template where
74
- * it'll be rendered.
75
- * @property {string} [description] - Description of the SEO Schema Template.
76
- * @property {string} [schema] - Contents of the SEO Schema template in nunjucks format.
77
- * @property {boolean} [active] - Whether SEO Schema template is active or not.
78
- * @property {string} [created_at] - Timestamp which represent the time when
79
- * data was created.
80
- * @property {string} [updated_at] - Timestamp which represent when was the last
81
- * time when data was updated.
82
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
83
- */
84
-
85
- /**
86
- * @typedef ScheduleSchema
87
- * @property {string} [cron] - String representing the cron expression.
88
- * @property {string} [start] - Start time of schedule.
89
- * @property {string} [end] - End time of schedule.
90
- * @property {number} [duration] - Duration of the scheduled entity.
91
- * @property {NextSchedule[]} [next_schedule] - Details regarding the next
92
- * trigger point of schedule.
93
- */
94
-
95
- /**
96
- * @typedef NextSchedule
97
- * @property {string} [start] - Start time of next trigger point of schedule.
98
- * @property {string} [end] - End time of next trigger point of schedule.
99
- */
100
-
101
- /**
102
- * @typedef AnnouncementSchema
103
- * @property {string} [announcement] - Details regarding the announcement bar contents.
104
- * @property {ScheduleStartSchema} [schedule]
105
- */
106
-
107
- /**
108
- * @typedef ScheduleStartSchema
109
- * @property {string} [start] - Start time of schedule.
110
- * @property {string} [end] - End time of schedule.
111
- */
112
-
113
- /**
114
- * @typedef BlogGetResponse
115
- * @property {BlogSchema[]} [items] - List of blogs with details.
116
- * @property {Page} [page]
117
- * @property {BlogFilters} [filters]
118
- */
119
-
120
- /**
121
- * @typedef BlogFilters
122
- * @property {string[]} [tags] - All tags present under blogs.
123
- */
124
-
125
- /**
126
- * @typedef ResourceContent
127
- * @property {string} [type] - The type of content of blogs - html.
128
- * @property {string} [value] - The contents of blog.
129
- */
130
-
131
- /**
132
- * @typedef Asset
133
- * @property {string} [aspect_ratio] - Aspect ratio of the image.
134
- * @property {string} [id] - Unique identifier for an entry.
135
- * @property {string} [secure_url] - URL of the image.
136
- */
137
-
138
- /**
139
- * @typedef Author
140
- * @property {string} [designation] - Description of the author of blog.
141
- * @property {string} [id] - Unique Identifier of the author of blog.
142
- * @property {string} [name] - Name of the author of blog.
143
- */
144
-
145
- /**
146
- * @typedef BlogSchema
147
- * @property {string} [_id] - Unique identifier for an entry.
148
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
149
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
150
- * @property {boolean} [archived] - Boolean flag denoting whether blog is archived or not.
151
- * @property {Author} [author]
152
- * @property {ResourceContent[]} [content] - Contents of blog.
153
- * @property {Asset} [feature_image]
154
- * @property {boolean} [published] - Boolean flag denoting whether blog is
155
- * published or not.
156
- * @property {string} [reading_time] - Estimated time required to read the blog.
157
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
158
- * @property {string[]} [tags] - Tags under a blog.
159
- * @property {string} [publish_date] - Timestamp denoting when the blog was published.
160
- * @property {SEO} [seo]
161
- * @property {string} [title] - Title of the Blog.
162
- * @property {DateMeta} [date_meta]
163
- * @property {string} [summary] - A brief description of blog.
164
- */
165
-
166
- /**
167
- * @typedef SEO
168
- * @property {string} [description] - The contents of og:description.
169
- * @property {SEOImage} [image]
170
- * @property {string} [title] - The contents of og:title.
171
- * @property {SEOMetaItem[]} [meta_tags] - List of meta tags.
172
- * @property {SEOSitemap} [sitemap]
173
- * @property {SEObreadcrumb[]} [breadcrumb] - List of action objects which can
174
- * power breadcrumbs on website.
175
- * @property {string} [canonical_url] - The canonical URL for canonical link element.
176
- */
177
-
178
- /**
179
- * @typedef SEOImage
180
- * @property {string} [url] - The url of image.
181
- */
182
-
183
- /**
184
- * @typedef SEOMetaItem
185
- * @property {string} [title] - Title of the custom meta tags group.
186
- * @property {SEOMetaItems[]} [items] - List of key value pairs to power meta tags.
187
- */
188
-
189
- /**
190
- * @typedef SEOMetaItems
191
- * @property {string} [key] - The key denoting the attribute name of SEO meta tag.
192
- * @property {string} [value] - The key denoting the attribute value of SEO meta tag.
193
- */
194
-
195
- /**
196
- * @typedef SEOSitemap
197
- * @property {number} [priority] - Value of sitemap priority randing from 0.0 to 1.0.
198
- * @property {string} [frequency] - Value of sitemap frequency change denoting
199
- * how frequently the content changes.
200
- */
201
-
202
- /**
203
- * @typedef SEObreadcrumb
204
- * @property {string} [url] - URL of where the breadcrumb link redirects to.
205
- * @property {Action} [action]
206
- */
207
-
208
- /**
209
- * @typedef DateMeta
210
- * @property {string} [created_on] - Timestamp which represent the time when
211
- * data was created.
212
- * @property {string} [modified_on] - Timestamp which represent when was the
213
- * last time when data was updated.
214
- */
215
-
216
- /**
217
- * @typedef LocaleLanguage
218
- * @property {Language} [hi]
219
- * @property {Language} [ar]
220
- * @property {Language} [en_us]
221
- */
222
-
223
- /**
224
- * @typedef Language
225
- * @property {string} [display] - Name of an entry in a specific language.
226
- */
227
-
228
- /**
229
- * @typedef Action
230
- * @property {string} [type] - Type of action to be taken e.g, page.
231
- * @property {ActionPage} [page]
232
- * @property {ActionPage} [popup]
233
- */
234
-
235
- /**
236
- * @typedef NavigationReference
237
- * @property {string[]} [acl] - Details regarding the authorization level to
238
- * access the navigation item.
239
- * @property {string[]} [tags] - List of tags under a navigation link.
240
- * @property {LocaleLanguage} [_locale_language]
241
- * @property {string} [image] - URL of an image associated with a navigation link.
242
- * @property {string} [type] - Type of action to be taken e.g, page.
243
- * @property {Action} [action]
244
- * @property {boolean} [active] - Whether navigation is active or not.
245
- * @property {string} [display] - Display name of the navigation link.
246
- * @property {number} [sort_order] - Number denoting the position of navigation link.
247
- * @property {NavigationReference[]} [sub_navigation] - List of sub links and
248
- * details under a navigation.
249
- */
250
-
251
- /**
252
- * @typedef ConfigurationSchema
253
- * @property {number} [sleep_time] - Amount of time in seconds after which
254
- * slideshow/screensaver is run.
255
- * @property {boolean} [start_on_launch] - Flag denoting whether screensaver
256
- * needs to be shown on launch of website/app.
257
- * @property {number} [duration] - Duration of the slideshow/screensaver.
258
- * @property {string} [slide_direction] - Direction of the slideshow.
259
- */
260
-
261
- /**
262
- * @typedef SlideshowMedia
263
- * @property {string} [type] - Type of Media.
264
- * @property {string} [url] - URL of Media where it's hosted.
265
- * @property {string} [bg_color] - Background colour of Media.
266
- * @property {number} [duration] - Amount of time in seconds for which Media has
267
- * to appear.
268
- * @property {boolean} [auto_decide_duration] - Whether the duration for each
269
- * media is to be decided by system or not. If true, it'll equally divide time
270
- * in all medias.
271
- * @property {Action} [action]
272
- */
273
-
274
- /**
275
- * @typedef AnnouncementsResponseSchema
276
- * @property {Object} [announcements] - List all the announcement bar details
277
- * and its contents.
278
- * @property {number} [refresh_rate] - Number of seconds after which api should
279
- * hit again to fetch new announcements.
280
- * @property {string[]} [refresh_pages] - List of page slugs on which
281
- * announcement should be fetched as soon as they are loaded.
282
- */
283
-
284
- /**
285
- * @typedef FaqResponseSchema
286
- * @property {FaqSchema[]} [faqs] - List of FAQs.
287
- */
288
-
289
- /**
290
- * @typedef DataLoaderSchema
291
- * @property {string} [name] - Name of dataloader.
292
- * @property {string} [service] - Service of data loader which overrides the
293
- * default method.
294
- * @property {string} [operation_id] - Operation ID of the method which data
295
- * loader is overriding.
296
- * @property {string} [type] - Type of data loader.
297
- * @property {string} [url] - URL at which data loader redirects.
298
- * @property {string} [content] - Content of a data loader.
299
- * @property {DataLoaderSourceSchema} [__source]
300
- * @property {string} [_id] - Unique identifier of an entry.
301
- */
302
-
303
- /**
304
- * @typedef DataLoaderSourceSchema
305
- * @property {string} [type] - Type of creator.
306
- * @property {string} [id] - Identifier of an extension.
307
- */
308
-
309
- /**
310
- * @typedef DataLoadersSchema
311
- * @property {DataLoaderSchema[]} [items] - List of data loaders.
312
- */
313
-
314
- /**
315
- * @typedef ContentAPIError
316
- * @property {string} [message] - Error message.
317
- * @property {number} [status] - HTTP Status code of the error.
318
- * @property {string} [code] - Status code of an error.
319
- * @property {string} [exception] - Exception class name.
320
- * @property {string} [info] - Details regarding the error.
321
- * @property {string} [request_id] - The identifier denoting request.
322
- * @property {string} [stack_trace] - Report of a stack frame to debug the issue.
323
- * @property {Object} [meta] - Metadata related to an error.
324
- */
325
-
326
- /**
327
- * @typedef CommonError
328
- * @property {string} [message] - Error message.
329
- */
330
-
331
- /**
332
- * @typedef CategorySchema
333
- * @property {number} [index] - Order of FAQ Category.
334
- * @property {string} [title] - Title of the FAQ category.
335
- * @property {string} [description] - Details of the FAQ category.
336
- * @property {string[]} [children] - List of FAQs.
337
- * @property {string} [_id] - Unique identifier of an entry.
338
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
339
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
340
- * @property {string} [icon_url] - URL of the image associated with FAQ Category.
341
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
342
- */
343
-
344
- /**
345
- * @typedef ChildrenSchema
346
- * @property {string} [question] - The contents of a question of a FAQ.
347
- * @property {string} [answer] - The contents of a answer of a FAQ.
348
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
349
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
350
- * @property {string} [_id] - Unique identifier of an entry.
351
- */
352
-
353
- /**
354
- * @typedef FAQCategorySchema
355
- * @property {number} [index] - Order of FAQ Category.
356
- * @property {string} [title] - Title of a FAQ Category.
357
- * @property {string} [description] - Details of the FAQ category.
358
- * @property {ChildrenSchema[]} [children] - Details regarding a FAQs stored
359
- * under a FAQs category.
360
- * @property {string} [_id] - Unique identifier of an entry.
361
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
362
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
363
- * @property {string} [icon_url] - URL of the image associated with FAQ Category.
364
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
365
- */
366
-
367
- /**
368
- * @typedef FaqSchema
369
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
370
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
371
- * @property {string} [_id] - Unique identifier of an entry.
372
- * @property {string} [question] - The contents of a question of a FAQ.
373
- * @property {string} [answer] - The contents of a answer of a FAQ.
374
- * @property {string[]} [tags] - Tags under a FAQ.
375
- */
376
-
377
- /**
378
- * @typedef GetFaqSchema
379
- * @property {FaqSchema[]} [faqs] - List of FAQs.
380
- */
381
-
382
- /**
383
- * @typedef GetFaqCategoriesSchema
384
- * @property {CategorySchema[]} [categories] - List of FAQ Categories.
385
- */
386
-
387
- /**
388
- * @typedef GetFaqCategoryBySlugSchema
389
- * @property {FAQCategorySchema} [category]
390
- */
391
-
392
- /**
393
- * @typedef Page
394
- * @property {number} [item_total] - The total number of items on the page.
395
- * @property {string} [next_id] - The identifier for the next page.
396
- * @property {boolean} [has_previous] - Indicates whether there is a previous page.
397
- * @property {boolean} [has_next] - Indicates whether there is a next page.
398
- * @property {number} [current] - The current page number.
399
- * @property {string} type - The type of the page, such as 'PageType'.
400
- * @property {number} [size] - The number of items per page.
401
- */
402
-
403
- /**
404
- * @typedef LandingPageSchema
405
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
406
- * @property {Action} [action]
407
- * @property {string[]} [platform] - List of platforms linked to this landing page.
408
- * @property {CreatedBySchema} [created_by]
409
- * @property {DateMeta} [date_meta]
410
- * @property {string} [_id] - Unique identifier of an entry.
411
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
412
- * @property {boolean} [archived] - Whether landing page is archived or not.
413
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
414
- */
415
-
416
- /**
417
- * @typedef NavigationGetResponse
418
- * @property {NavigationSchema[]} [items] - List of navigation items.
419
- * @property {Page} [page]
420
- */
421
-
422
- /**
423
- * @typedef Orientation
424
- * @property {string[]} [portrait] - Data related to devices where navigation is
425
- * assigned in portrait mode.
426
- * @property {string[]} [landscape] - Data related to devices where navigation
427
- * is assigned in landscape mode.
428
- */
429
-
430
- /**
431
- * @typedef NavigationSchema
432
- * @property {string} [_id] - Unique identifier of an entry.
433
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
434
- * @property {boolean} [archived] - Whether navigation is archived or not.
435
- * @property {string} [name] - Name of the navigation link.
436
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
437
- * @property {string[]} [platform] - Details regarding the platforms for which
438
- * this navigation is to applied on.
439
- * @property {CreatedBySchema} [created_by]
440
- * @property {DateMeta} [date_meta]
441
- * @property {Orientation} [orientation]
442
- * @property {number} [version] - A hardcoded key for internally managing
443
- * navigation versions.
444
- * @property {NavigationReference[]} [navigation] - List of all navigations
445
- * links and relevant details.
446
- */
447
-
448
- /**
449
- * @typedef PageGetResponse
450
- * @property {PageSchema[]} [items] - List of details of custom pages.
451
- * @property {Page} [page]
452
- */
453
-
454
- /**
455
- * @typedef PageSchema
456
- * @property {string} [_id] - Unique identifier of an entry.
457
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
458
- * @property {string[]} [component_ids] - Components can be used to store
459
- * multiple components.
460
- * @property {Object[]} [content] - Contents of a custom page.
461
- * @property {string} [content_path] - A CDN URL at which the entire html
462
- * content can be fetched from.
463
- * @property {CreatedBySchema} [created_by]
464
- * @property {DateMeta} [date_meta]
465
- * @property {string} [description] - Description about the page.
466
- * @property {Asset} [feature_image]
467
- * @property {Object[]} [page_meta] - List of Custom JSON object for specific use cases.
468
- * @property {ScheduleSchema} [_schedule]
469
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
470
- * @property {string} [orientation] - Orientation for Custom Pages - Landscape
471
- * or portrait.
472
- * @property {string} [platform] - Platform for Custom Pages - Denotes the device type.
473
- * @property {boolean} [published] - Whether page is active or not on website.
474
- * @property {string} [slug] - A short, human-readable, URL-friendly identifier.
475
- * @property {string[]} [tags] - Tags under a page.
476
- * @property {string} [title] - The title of the page.
477
- * @property {string} [type] - Type of editor through which the page was created
478
- * so appropriate rendering engine is used.
479
- * @property {SEO} [seo]
480
- * @property {Object} [visibility] - Visibility of Page.
481
- * @property {boolean} [archived] - Flag denoting whether the page is archived or not.
482
- */
483
-
484
- /**
485
- * @typedef CreatedBySchema
486
- * @property {string} [id] - Details containing the creator of custom page.
487
- */
488
-
489
- /**
490
- * @typedef SlideshowGetResponse
491
- * @property {SlideshowSchema[]} [items] - Details related to slideshow/screensaver.
492
- * @property {Page} [page]
493
- */
494
-
495
- /**
496
- * @typedef SlideshowSchema
497
- * @property {string} [_id] - Unique identifier of an entry.
498
- * @property {string} [slug] - Details related to slideshow/screensaver.
499
- * @property {DateMeta} [date_meta]
500
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
501
- * @property {string} [platform] - Details related to slideshow/screensaver.
502
- * @property {ConfigurationSchema} [configuration]
503
- * @property {SlideshowMedia[]} [media] - Details related to slideshow/screensaver.
504
- * @property {boolean} [active] - Details related to slideshow/screensaver.
505
- * @property {boolean} [archived] - Whether slideshow is deleted or not.
506
- * @property {Object} [_custom_json] - Custom JSON object for specific use cases.
507
- */
508
-
509
- /**
510
- * @typedef Support
511
- * @property {boolean} [created] - Whether support contact details are created or not.
512
- * @property {string} [_id] - Unique identifier of an entry.
513
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
514
- * @property {string} [created_at] - Timestamp which represent the time when
515
- * data was created.
516
- * @property {string} [updated_at] - Timestamp which represent when was the last
517
- * time when data was updated.
518
- * @property {ContactSchema} [contact]
519
- */
520
-
521
- /**
522
- * @typedef PhoneProperties
523
- * @property {string} [key] - Name of the Contact SPOC.
524
- * @property {string} [code] - International dial Code.
525
- * @property {string} [number] - Phone Number.
526
- * @property {string} [phone_type] - Denotes the type of phone number.
527
- */
528
-
529
- /**
530
- * @typedef PhoneSchema
531
- * @property {boolean} [active] - Flag denoting whether contact detail is active or not.
532
- * @property {PhoneProperties[]} [phone] - Details related to phone contact of SPOC.
533
- */
534
-
535
- /**
536
- * @typedef EmailProperties
537
- * @property {string} [key] - Name of email SPOC.
538
- * @property {string} [value] - Email Id of the SPOC.
539
- */
540
-
541
- /**
542
- * @typedef EmailSchema
543
- * @property {boolean} [active] - Whether contact detail is active or not.
544
- * @property {EmailProperties[]} [email] - Details related to email contact of SPOC.
545
- */
546
-
547
- /**
548
- * @typedef ContactSchema
549
- * @property {PhoneSchema} [phone]
550
- * @property {EmailSchema} [email]
551
- */
552
-
553
- /**
554
- * @typedef TagsSchema
555
- * @property {string} [application] - Application ID - Identifier for a Sales channel.
556
- * @property {string} [_id] - Unique identifier of an entry.
557
- * @property {TagSchema[]} [tags] - List of Third party injectable html tags.
558
- */
559
-
560
- /**
561
- * @typedef TagSchema
562
- * @property {string} [name] - Name of the html tag.
563
- * @property {string} [url] - URL at which css or js might be hosted.
564
- * @property {string} [type] - Whether Tag is JS or CSS.
565
- * @property {string} [sub_type] - Whether js/css is external or inline.
566
- * @property {string} [_id] - Unique identifier of an entry.
567
- * @property {string} [position] - Position where Tag is so to be placed.
568
- * @property {Object} [attributes] - Custom JSON object for specific use cases.
569
- * @property {string} [content] - Content of tag.
570
- * @property {Object[]} [pages] - List of all the page where tag is to be added.
571
- * @property {TagSourceSchema} [__source]
572
- */
573
-
574
- /**
575
- * @typedef TagSourceSchema
576
- * @property {string} [type] - Type of creator of tag.
577
- * @property {string} [id] - Identifier of an extension.
578
- */
579
-
580
- /**
581
- * @typedef CustomObjectFieldValue
582
- * @property {Object} [value] - Value of custom field.
583
- */
584
-
585
- /**
586
- * @typedef CustomObjectListItemDefinationSchema
587
- * @property {string} [_id] - Unique identifier of an entry.
588
- * @property {string} [name] - Name of definition of custom field.
589
- * @property {string} [type] - Data type of the custom field.
590
- */
591
-
592
- /**
593
- * @typedef CustomObjectFieldSchema
594
- * @property {string} [_id] - Unique identifier of an entry.
595
- * @property {string} [key] - Key of custom field inside custom object.
596
- * @property {CustomObjectFieldValue[]} [value] - Value of custom field inside
597
- * custom object.
598
- * @property {string} [type] - Data type of custom field inside custom object.
599
- * @property {string} [definition_id] - Definition id of custom field inside
600
- * custom object.
601
- */
602
-
603
- /**
604
- * @typedef CustomObjectByIdSchema
605
- * @property {string} [_id] - Unique identifier of an entry.
606
- * @property {string} [status] - String denoting whether custom object is active
607
- * or inactive.
608
- * @property {string} [display_name] - Unique Display name of a custom object
609
- * which is system generated: Concatenation of string definition name and _id.
610
- * @property {CustomObjectListItemDefinationSchema} [definition]
611
- * @property {Object[]} [references] - List of custom fields ids where the
612
- * custom object is added as a field.
613
- * @property {CustomObjectFieldSchema[]} [fields] - List of custom fields
614
- * against a Custom Object.
615
- */
616
-
617
- /**
618
- * @typedef CustomFieldValue
619
- * @property {Object} [value] - Array containing value(s) of custom field.
620
- */
621
-
622
- /**
623
- * @typedef CustomFieldSchema
624
- * @property {string} [_id] - Unique identifier of an entry.
625
- * @property {string} [namespace] - Namespace under which custom field is present.
626
- * @property {string} [key] - Unique identifier for a custom field.
627
- * @property {string} [resource] - Type of an entity under which custom field is defined.
628
- * @property {string} [creator] - Denotes where the custom field has been
629
- * defined - within a company or within a sales channel.
630
- * @property {CustomFieldValue[]} [value] - Array containing values of custom field.
631
- * @property {string} [resource_id] - Unique identifier for the entity under
632
- * which custom field is defined.
633
- * @property {string} [type] - The type type of custom field.
634
- * @property {boolean} [multi_value] - Whether custom field can have multiple
635
- * values or not.
636
- * @property {string} [company_id] - Unique Identifier for a company.
637
- * @property {string} [application_id] - Application ID - Identifier for a Sales channel.
638
- * @property {string} [definition_id] - Unique identifier for a custom field definition.
639
- * @property {boolean} [has_invalid_values] - Whether the custom field has invalid values.
640
- * @property {Object[]} [invalid_value_errors] - Array denoting if there's a
641
- * validation failure on a custom field inside a custom object.
642
- * @property {string} [created_by] - Details of the owner of custom field creator.
643
- * @property {boolean} [is_deleted] - Whether the custom field definition is deleted.
644
- * @property {string} [created_at] - Timestamp which represent the time when
645
- * data was created.
646
- * @property {string} [updated_at] - Timestamp which represent when was the last
647
- * time when data was updated.
648
- */
649
-
650
- /**
651
- * @typedef CustomFieldsResponseByResourceIdSchema
652
- * @property {CustomFieldSchema[]} [items] - List of custom fields against a resource.
653
- */
654
-
655
- /**
656
- * @typedef ActionPage
657
- * @property {Object} [params] - Parameters that should be considered in path.
658
- * @property {Object} [query] - Query parameter if any to be added to the action.
659
- * @property {string} [url] - The URL for the action.
660
- * @property {PageType} type
661
- */
662
-
663
- /**
664
- * @typedef {| "about-us"
665
- * | "addresses"
666
- * | "blog"
667
- * | "brands"
668
- * | "cards"
669
- * | "cart"
670
- * | "categories"
671
- * | "brand"
672
- * | "category"
673
- * | "collection"
674
- * | "collections"
675
- * | "custom"
676
- * | "contact-us"
677
- * | "external"
678
- * | "faq"
679
- * | "freshchat"
680
- * | "home"
681
- * | "notification-settings"
682
- * | "orders"
683
- * | "page"
684
- * | "policy"
685
- * | "product"
686
- * | "product-request"
687
- * | "products"
688
- * | "profile"
689
- * | "profile-order-shipment"
690
- * | "profile-basic"
691
- * | "profile-company"
692
- * | "profile-emails"
693
- * | "profile-phones"
694
- * | "rate-us"
695
- * | "refer-earn"
696
- * | "settings"
697
- * | "shared-cart"
698
- * | "tnc"
699
- * | "track-order"
700
- * | "wishlist"
701
- * | "sections"
702
- * | "form"
703
- * | "cart-delivery"
704
- * | "cart-payment"
705
- * | "cart-review"
706
- * | "login"
707
- * | "register"
708
- * | "shipping-policy"
709
- * | "return-policy"
710
- * | "order-status"
711
- * | "locate-us"} PageType
712
- */
713
-
714
- class ContentApplicationModel {
715
- /** @returns {ApplicationLegal} */
716
- static ApplicationLegal() {
717
- return Joi.object({
718
- application: Joi.string().allow(""),
719
- tnc: Joi.string().allow(""),
720
- policy: Joi.string().allow(""),
721
- shipping: Joi.string().allow(""),
722
- returns: Joi.string().allow(""),
723
- faq: Joi.array().items(ContentApplicationModel.ApplicationLegalFAQ()),
724
- _id: Joi.string().allow(""),
725
- updated_at: Joi.string().allow(""),
726
- created_at: Joi.string().allow(""),
727
- });
728
- }
729
-
730
- /** @returns {ApplicationLegalFAQ} */
731
- static ApplicationLegalFAQ() {
732
- return Joi.object({
733
- question: Joi.string().allow(""),
734
- answer: Joi.string().allow(""),
735
- });
736
- }
737
-
738
- /** @returns {SeoComponent} */
739
- static SeoComponent() {
740
- return Joi.object({
741
- seo: ContentApplicationModel.SeoSchema(),
742
- });
743
- }
744
-
745
- /** @returns {SeoSchema} */
746
- static SeoSchema() {
747
- return Joi.object({
748
- app: Joi.string().allow(""),
749
- _id: Joi.string().allow(""),
750
- robots_txt: Joi.string().allow(""),
751
- sitemap_enabled: Joi.boolean(),
752
- additonal_sitemap: Joi.string().allow(""),
753
- cannonical_enabled: Joi.boolean(),
754
- custom_meta_tags: Joi.array().items(
755
- ContentApplicationModel.CustomMetaTag()
756
- ),
757
- details: ContentApplicationModel.Detail(),
758
- created_at: Joi.string().allow(""),
759
- updated_at: Joi.string().allow(""),
760
- });
761
- }
762
-
763
- /** @returns {CustomMetaTag} */
764
- static CustomMetaTag() {
765
- return Joi.object({
766
- name: Joi.string().allow(""),
767
- content: Joi.string().allow(""),
768
- _id: Joi.string().allow(""),
769
- });
770
- }
771
-
772
- /** @returns {Detail} */
773
- static Detail() {
774
- return Joi.object({
775
- title: Joi.string().allow(""),
776
- description: Joi.string().allow(""),
777
- image_url: Joi.string().allow(""),
778
- });
779
- }
780
-
781
- /** @returns {SeoSchemaComponent} */
782
- static SeoSchemaComponent() {
783
- return Joi.object({
784
- items: Joi.array().items(
785
- ContentApplicationModel.SEOSchemaMarkupTemplate()
786
- ),
787
- });
788
- }
789
-
790
- /** @returns {SEOSchemaMarkupTemplate} */
791
- static SEOSchemaMarkupTemplate() {
792
- return Joi.object({
793
- id: Joi.string().allow(""),
794
- title: Joi.string().allow(""),
795
- page_type: Joi.string().allow(""),
796
- description: Joi.string().allow(""),
797
- schema: Joi.string().allow(""),
798
- active: Joi.boolean(),
799
- created_at: Joi.string().allow(""),
800
- updated_at: Joi.string().allow(""),
801
- application: Joi.string().allow(""),
802
- });
803
- }
804
-
805
- /** @returns {ScheduleSchema} */
806
- static ScheduleSchema() {
807
- return Joi.object({
808
- cron: Joi.string().allow(""),
809
- start: Joi.string().allow(""),
810
- end: Joi.string().allow(""),
811
- duration: Joi.number(),
812
- next_schedule: Joi.array().items(ContentApplicationModel.NextSchedule()),
813
- });
814
- }
815
-
816
- /** @returns {NextSchedule} */
817
- static NextSchedule() {
818
- return Joi.object({
819
- start: Joi.string().allow(""),
820
- end: Joi.string().allow(""),
821
- });
822
- }
823
-
824
- /** @returns {AnnouncementSchema} */
825
- static AnnouncementSchema() {
826
- return Joi.object({
827
- announcement: Joi.string().allow(""),
828
- schedule: ContentApplicationModel.ScheduleStartSchema(),
829
- });
830
- }
831
-
832
- /** @returns {ScheduleStartSchema} */
833
- static ScheduleStartSchema() {
834
- return Joi.object({
835
- start: Joi.string().allow(""),
836
- end: Joi.string().allow(""),
837
- });
838
- }
839
-
840
- /** @returns {BlogGetResponse} */
841
- static BlogGetResponse() {
842
- return Joi.object({
843
- items: Joi.array().items(ContentApplicationModel.BlogSchema()),
844
- page: ContentApplicationModel.Page(),
845
- filters: ContentApplicationModel.BlogFilters(),
846
- });
847
- }
848
-
849
- /** @returns {BlogFilters} */
850
- static BlogFilters() {
851
- return Joi.object({
852
- tags: Joi.array().items(Joi.string().allow("")),
853
- });
854
- }
855
-
856
- /** @returns {ResourceContent} */
857
- static ResourceContent() {
858
- return Joi.object({
859
- type: Joi.string().allow(""),
860
- value: Joi.string().allow(""),
861
- });
862
- }
863
-
864
- /** @returns {Asset} */
865
- static Asset() {
866
- return Joi.object({
867
- aspect_ratio: Joi.string().allow(""),
868
- id: Joi.string().allow(""),
869
- secure_url: Joi.string().allow(""),
870
- });
871
- }
872
-
873
- /** @returns {Author} */
874
- static Author() {
875
- return Joi.object({
876
- designation: Joi.string().allow(""),
877
- id: Joi.string().allow(""),
878
- name: Joi.string().allow(""),
879
- });
880
- }
881
-
882
- /** @returns {BlogSchema} */
883
- static BlogSchema() {
884
- return Joi.object({
885
- _id: Joi.string().allow(""),
886
- _custom_json: Joi.any(),
887
- application: Joi.string().allow(""),
888
- archived: Joi.boolean(),
889
- author: ContentApplicationModel.Author(),
890
- content: Joi.array().items(ContentApplicationModel.ResourceContent()),
891
- feature_image: ContentApplicationModel.Asset(),
892
- published: Joi.boolean(),
893
- reading_time: Joi.string().allow(""),
894
- slug: Joi.string().allow(""),
895
- tags: Joi.array().items(Joi.string().allow("")),
896
- publish_date: Joi.string().allow(""),
897
- seo: ContentApplicationModel.SEO(),
898
- title: Joi.string().allow(""),
899
- date_meta: ContentApplicationModel.DateMeta(),
900
- summary: Joi.string().allow(""),
901
- });
902
- }
903
-
904
- /** @returns {SEO} */
905
- static SEO() {
906
- return Joi.object({
907
- description: Joi.string().allow(""),
908
- image: ContentApplicationModel.SEOImage(),
909
- title: Joi.string().allow(""),
910
- meta_tags: Joi.array().items(ContentApplicationModel.SEOMetaItem()),
911
- sitemap: ContentApplicationModel.SEOSitemap(),
912
- breadcrumb: Joi.array().items(ContentApplicationModel.SEObreadcrumb()),
913
- canonical_url: Joi.string().allow(""),
914
- });
915
- }
916
-
917
- /** @returns {SEOImage} */
918
- static SEOImage() {
919
- return Joi.object({
920
- url: Joi.string().allow(""),
921
- });
922
- }
923
-
924
- /** @returns {SEOMetaItem} */
925
- static SEOMetaItem() {
926
- return Joi.object({
927
- title: Joi.string().allow(""),
928
- items: Joi.array().items(ContentApplicationModel.SEOMetaItems()),
929
- });
930
- }
931
-
932
- /** @returns {SEOMetaItems} */
933
- static SEOMetaItems() {
934
- return Joi.object({
935
- key: Joi.string().allow(""),
936
- value: Joi.string().allow(""),
937
- });
938
- }
939
-
940
- /** @returns {SEOSitemap} */
941
- static SEOSitemap() {
942
- return Joi.object({
943
- priority: Joi.number(),
944
- frequency: Joi.string().allow(""),
945
- });
946
- }
947
-
948
- /** @returns {SEObreadcrumb} */
949
- static SEObreadcrumb() {
950
- return Joi.object({
951
- url: Joi.string().allow(""),
952
- action: ContentApplicationModel.Action(),
953
- });
954
- }
955
-
956
- /** @returns {DateMeta} */
957
- static DateMeta() {
958
- return Joi.object({
959
- created_on: Joi.string().allow(""),
960
- modified_on: Joi.string().allow(""),
961
- });
962
- }
963
-
964
- /** @returns {LocaleLanguage} */
965
- static LocaleLanguage() {
966
- return Joi.object({
967
- hi: ContentApplicationModel.Language(),
968
- ar: ContentApplicationModel.Language(),
969
- en_us: ContentApplicationModel.Language(),
970
- });
971
- }
972
-
973
- /** @returns {Language} */
974
- static Language() {
975
- return Joi.object({
976
- display: Joi.string().allow(""),
977
- });
978
- }
979
-
980
- /** @returns {Action} */
981
- static Action() {
982
- return Joi.object({
983
- type: Joi.string().allow(""),
984
- page: ContentApplicationModel.ActionPage(),
985
- popup: ContentApplicationModel.ActionPage(),
986
- });
987
- }
988
-
989
- /** @returns {NavigationReference} */
990
- static NavigationReference() {
991
- return Joi.object({
992
- acl: Joi.array().items(Joi.string().allow("")),
993
- tags: Joi.array().items(Joi.string().allow("")),
994
- _locale_language: ContentApplicationModel.LocaleLanguage(),
995
- image: Joi.string().allow(""),
996
- type: Joi.string().allow(""),
997
- action: ContentApplicationModel.Action(),
998
- active: Joi.boolean(),
999
- display: Joi.string().allow(""),
1000
- sort_order: Joi.number(),
1001
- sub_navigation: Joi.array().items(Joi.link("#NavigationReference")),
1002
- }).id("NavigationReference");
1003
- }
1004
-
1005
- /** @returns {ConfigurationSchema} */
1006
- static ConfigurationSchema() {
1007
- return Joi.object({
1008
- sleep_time: Joi.number(),
1009
- start_on_launch: Joi.boolean(),
1010
- duration: Joi.number(),
1011
- slide_direction: Joi.string().allow(""),
1012
- });
1013
- }
1014
-
1015
- /** @returns {SlideshowMedia} */
1016
- static SlideshowMedia() {
1017
- return Joi.object({
1018
- type: Joi.string().allow(""),
1019
- url: Joi.string().allow(""),
1020
- bg_color: Joi.string().allow(""),
1021
- duration: Joi.number(),
1022
- auto_decide_duration: Joi.boolean(),
1023
- action: ContentApplicationModel.Action(),
1024
- });
1025
- }
1026
-
1027
- /** @returns {AnnouncementsResponseSchema} */
1028
- static AnnouncementsResponseSchema() {
1029
- return Joi.object({
1030
- announcements: Joi.object().pattern(
1031
- /\S/,
1032
- Joi.array().items(ContentApplicationModel.AnnouncementSchema())
1033
- ),
1034
- refresh_rate: Joi.number(),
1035
- refresh_pages: Joi.array().items(Joi.string().allow("")),
1036
- });
1037
- }
1038
-
1039
- /** @returns {FaqResponseSchema} */
1040
- static FaqResponseSchema() {
1041
- return Joi.object({
1042
- faqs: Joi.array().items(ContentApplicationModel.FaqSchema()),
1043
- });
1044
- }
1045
-
1046
- /** @returns {DataLoaderSchema} */
1047
- static DataLoaderSchema() {
1048
- return Joi.object({
1049
- name: Joi.string().allow(""),
1050
- service: Joi.string().allow(""),
1051
- operation_id: Joi.string().allow(""),
1052
- type: Joi.string().allow(""),
1053
- url: Joi.string().allow(""),
1054
- content: Joi.string().allow(""),
1055
- __source: ContentApplicationModel.DataLoaderSourceSchema(),
1056
- _id: Joi.string().allow(""),
1057
- });
1058
- }
1059
-
1060
- /** @returns {DataLoaderSourceSchema} */
1061
- static DataLoaderSourceSchema() {
1062
- return Joi.object({
1063
- type: Joi.string().allow(""),
1064
- id: Joi.string().allow(""),
1065
- });
1066
- }
1067
-
1068
- /** @returns {DataLoadersSchema} */
1069
- static DataLoadersSchema() {
1070
- return Joi.object({
1071
- items: Joi.array().items(ContentApplicationModel.DataLoaderSchema()),
1072
- });
1073
- }
1074
-
1075
- /** @returns {ContentAPIError} */
1076
- static ContentAPIError() {
1077
- return Joi.object({
1078
- message: Joi.string().allow(""),
1079
- status: Joi.number(),
1080
- code: Joi.string().allow(""),
1081
- exception: Joi.string().allow(""),
1082
- info: Joi.string().allow(""),
1083
- request_id: Joi.string().allow(""),
1084
- stack_trace: Joi.string().allow(""),
1085
- meta: Joi.any(),
1086
- });
1087
- }
1088
-
1089
- /** @returns {CommonError} */
1090
- static CommonError() {
1091
- return Joi.object({
1092
- message: Joi.string().allow(""),
1093
- });
1094
- }
1095
-
1096
- /** @returns {CategorySchema} */
1097
- static CategorySchema() {
1098
- return Joi.object({
1099
- index: Joi.number(),
1100
- title: Joi.string().allow(""),
1101
- description: Joi.string().allow(""),
1102
- children: Joi.array().items(Joi.string().allow("")),
1103
- _id: Joi.string().allow(""),
1104
- slug: Joi.string().allow(""),
1105
- application: Joi.string().allow(""),
1106
- icon_url: Joi.string().allow(""),
1107
- _custom_json: Joi.any(),
1108
- });
1109
- }
1110
-
1111
- /** @returns {ChildrenSchema} */
1112
- static ChildrenSchema() {
1113
- return Joi.object({
1114
- question: Joi.string().allow(""),
1115
- answer: Joi.string().allow(""),
1116
- slug: Joi.string().allow(""),
1117
- application: Joi.string().allow(""),
1118
- _id: Joi.string().allow(""),
1119
- });
1120
- }
1121
-
1122
- /** @returns {FAQCategorySchema} */
1123
- static FAQCategorySchema() {
1124
- return Joi.object({
1125
- index: Joi.number(),
1126
- title: Joi.string().allow(""),
1127
- description: Joi.string().allow(""),
1128
- children: Joi.array().items(ContentApplicationModel.ChildrenSchema()),
1129
- _id: Joi.string().allow(""),
1130
- slug: Joi.string().allow(""),
1131
- application: Joi.string().allow(""),
1132
- icon_url: Joi.string().allow(""),
1133
- _custom_json: Joi.any(),
1134
- });
1135
- }
1136
-
1137
- /** @returns {FaqSchema} */
1138
- static FaqSchema() {
1139
- return Joi.object({
1140
- slug: Joi.string().allow(""),
1141
- application: Joi.string().allow(""),
1142
- _id: Joi.string().allow(""),
1143
- question: Joi.string().allow(""),
1144
- answer: Joi.string().allow(""),
1145
- tags: Joi.array().items(Joi.string().allow("")),
1146
- });
1147
- }
1148
-
1149
- /** @returns {GetFaqSchema} */
1150
- static GetFaqSchema() {
1151
- return Joi.object({
1152
- faqs: Joi.array().items(ContentApplicationModel.FaqSchema()),
1153
- });
1154
- }
1155
-
1156
- /** @returns {GetFaqCategoriesSchema} */
1157
- static GetFaqCategoriesSchema() {
1158
- return Joi.object({
1159
- categories: Joi.array().items(ContentApplicationModel.CategorySchema()),
1160
- });
1161
- }
1162
-
1163
- /** @returns {GetFaqCategoryBySlugSchema} */
1164
- static GetFaqCategoryBySlugSchema() {
1165
- return Joi.object({
1166
- category: ContentApplicationModel.FAQCategorySchema(),
1167
- });
1168
- }
1169
-
1170
- /** @returns {Page} */
1171
- static Page() {
1172
- return Joi.object({
1173
- item_total: Joi.number(),
1174
- next_id: Joi.string().allow(""),
1175
- has_previous: Joi.boolean(),
1176
- has_next: Joi.boolean(),
1177
- current: Joi.number(),
1178
- type: Joi.string().allow("").required(),
1179
- size: Joi.number(),
1180
- });
1181
- }
1182
-
1183
- /** @returns {LandingPageSchema} */
1184
- static LandingPageSchema() {
1185
- return Joi.object({
1186
- slug: Joi.string().allow(""),
1187
- action: ContentApplicationModel.Action(),
1188
- platform: Joi.array().items(Joi.string().allow("")),
1189
- created_by: ContentApplicationModel.CreatedBySchema(),
1190
- date_meta: ContentApplicationModel.DateMeta(),
1191
- _id: Joi.string().allow(""),
1192
- application: Joi.string().allow(""),
1193
- archived: Joi.boolean(),
1194
- _custom_json: Joi.any(),
1195
- });
1196
- }
1197
-
1198
- /** @returns {NavigationGetResponse} */
1199
- static NavigationGetResponse() {
1200
- return Joi.object({
1201
- items: Joi.array().items(ContentApplicationModel.NavigationSchema()),
1202
- page: ContentApplicationModel.Page(),
1203
- });
1204
- }
1205
-
1206
- /** @returns {Orientation} */
1207
- static Orientation() {
1208
- return Joi.object({
1209
- portrait: Joi.array().items(Joi.string().allow("")),
1210
- landscape: Joi.array().items(Joi.string().allow("")),
1211
- });
1212
- }
1213
-
1214
- /** @returns {NavigationSchema} */
1215
- static NavigationSchema() {
1216
- return Joi.object({
1217
- _id: Joi.string().allow(""),
1218
- application: Joi.string().allow(""),
1219
- archived: Joi.boolean(),
1220
- name: Joi.string().allow(""),
1221
- slug: Joi.string().allow(""),
1222
- platform: Joi.array().items(Joi.string().allow("")),
1223
- created_by: ContentApplicationModel.CreatedBySchema(),
1224
- date_meta: ContentApplicationModel.DateMeta(),
1225
- orientation: ContentApplicationModel.Orientation(),
1226
- version: Joi.number(),
1227
- navigation: Joi.array().items(
1228
- ContentApplicationModel.NavigationReference()
1229
- ),
1230
- });
1231
- }
1232
-
1233
- /** @returns {PageGetResponse} */
1234
- static PageGetResponse() {
1235
- return Joi.object({
1236
- items: Joi.array().items(ContentApplicationModel.PageSchema()),
1237
- page: ContentApplicationModel.Page(),
1238
- });
1239
- }
1240
-
1241
- /** @returns {PageSchema} */
1242
- static PageSchema() {
1243
- return Joi.object({
1244
- _id: Joi.string().allow(""),
1245
- application: Joi.string().allow(""),
1246
- component_ids: Joi.array().items(Joi.string().allow("")),
1247
- content: Joi.array().items(Joi.any()),
1248
- content_path: Joi.string().allow(""),
1249
- created_by: ContentApplicationModel.CreatedBySchema(),
1250
- date_meta: ContentApplicationModel.DateMeta(),
1251
- description: Joi.string().allow(""),
1252
- feature_image: ContentApplicationModel.Asset(),
1253
- page_meta: Joi.array().items(Joi.any()),
1254
- _schedule: ContentApplicationModel.ScheduleSchema(),
1255
- _custom_json: Joi.any(),
1256
- orientation: Joi.string().allow(""),
1257
- platform: Joi.string().allow(""),
1258
- published: Joi.boolean(),
1259
- slug: Joi.string().allow(""),
1260
- tags: Joi.array().items(Joi.string().allow("")),
1261
- title: Joi.string().allow(""),
1262
- type: Joi.string().allow(""),
1263
- seo: ContentApplicationModel.SEO(),
1264
- visibility: Joi.any(),
1265
- archived: Joi.boolean(),
1266
- });
1267
- }
1268
-
1269
- /** @returns {CreatedBySchema} */
1270
- static CreatedBySchema() {
1271
- return Joi.object({
1272
- id: Joi.string().allow(""),
1273
- });
1274
- }
1275
-
1276
- /** @returns {SlideshowGetResponse} */
1277
- static SlideshowGetResponse() {
1278
- return Joi.object({
1279
- items: Joi.array().items(ContentApplicationModel.SlideshowSchema()),
1280
- page: ContentApplicationModel.Page(),
1281
- });
1282
- }
1283
-
1284
- /** @returns {SlideshowSchema} */
1285
- static SlideshowSchema() {
1286
- return Joi.object({
1287
- _id: Joi.string().allow(""),
1288
- slug: Joi.string().allow(""),
1289
- date_meta: ContentApplicationModel.DateMeta(),
1290
- application: Joi.string().allow(""),
1291
- platform: Joi.string().allow(""),
1292
- configuration: ContentApplicationModel.ConfigurationSchema(),
1293
- media: Joi.array().items(ContentApplicationModel.SlideshowMedia()),
1294
- active: Joi.boolean(),
1295
- archived: Joi.boolean(),
1296
- _custom_json: Joi.any(),
1297
- });
1298
- }
1299
-
1300
- /** @returns {Support} */
1301
- static Support() {
1302
- return Joi.object({
1303
- created: Joi.boolean(),
1304
- _id: Joi.string().allow(""),
1305
- application: Joi.string().allow(""),
1306
- created_at: Joi.string().allow(""),
1307
- updated_at: Joi.string().allow(""),
1308
- contact: ContentApplicationModel.ContactSchema(),
1309
- });
1310
- }
1311
-
1312
- /** @returns {PhoneProperties} */
1313
- static PhoneProperties() {
1314
- return Joi.object({
1315
- key: Joi.string().allow(""),
1316
- code: Joi.string().allow(""),
1317
- number: Joi.string().allow(""),
1318
- phone_type: Joi.string().allow(""),
1319
- });
1320
- }
1321
-
1322
- /** @returns {PhoneSchema} */
1323
- static PhoneSchema() {
1324
- return Joi.object({
1325
- active: Joi.boolean(),
1326
- phone: Joi.array().items(ContentApplicationModel.PhoneProperties()),
1327
- });
1328
- }
1329
-
1330
- /** @returns {EmailProperties} */
1331
- static EmailProperties() {
1332
- return Joi.object({
1333
- key: Joi.string().allow(""),
1334
- value: Joi.string().allow(""),
1335
- });
1336
- }
1337
-
1338
- /** @returns {EmailSchema} */
1339
- static EmailSchema() {
1340
- return Joi.object({
1341
- active: Joi.boolean(),
1342
- email: Joi.array().items(ContentApplicationModel.EmailProperties()),
1343
- });
1344
- }
1345
-
1346
- /** @returns {ContactSchema} */
1347
- static ContactSchema() {
1348
- return Joi.object({
1349
- phone: ContentApplicationModel.PhoneSchema(),
1350
- email: ContentApplicationModel.EmailSchema(),
1351
- });
1352
- }
1353
-
1354
- /** @returns {TagsSchema} */
1355
- static TagsSchema() {
1356
- return Joi.object({
1357
- application: Joi.string().allow(""),
1358
- _id: Joi.string().allow(""),
1359
- tags: Joi.array().items(ContentApplicationModel.TagSchema()),
1360
- });
1361
- }
1362
-
1363
- /** @returns {TagSchema} */
1364
- static TagSchema() {
1365
- return Joi.object({
1366
- name: Joi.string().allow(""),
1367
- url: Joi.string().allow(""),
1368
- type: Joi.string().allow(""),
1369
- sub_type: Joi.string().allow(""),
1370
- _id: Joi.string().allow(""),
1371
- position: Joi.string().allow(""),
1372
- attributes: Joi.any(),
1373
- content: Joi.string().allow(""),
1374
- pages: Joi.array().items(Joi.any()),
1375
- __source: ContentApplicationModel.TagSourceSchema(),
1376
- });
1377
- }
1378
-
1379
- /** @returns {TagSourceSchema} */
1380
- static TagSourceSchema() {
1381
- return Joi.object({
1382
- type: Joi.string().allow(""),
1383
- id: Joi.string().allow(""),
1384
- });
1385
- }
1386
-
1387
- /** @returns {CustomObjectFieldValue} */
1388
- static CustomObjectFieldValue() {
1389
- return Joi.object({
1390
- value: Joi.any(),
1391
- });
1392
- }
1393
-
1394
- /** @returns {CustomObjectListItemDefinationSchema} */
1395
- static CustomObjectListItemDefinationSchema() {
1396
- return Joi.object({
1397
- _id: Joi.string().allow(""),
1398
- name: Joi.string().allow(""),
1399
- type: Joi.string().allow(""),
1400
- });
1401
- }
1402
-
1403
- /** @returns {CustomObjectFieldSchema} */
1404
- static CustomObjectFieldSchema() {
1405
- return Joi.object({
1406
- _id: Joi.string().allow(""),
1407
- key: Joi.string().allow(""),
1408
- value: Joi.array().items(
1409
- ContentApplicationModel.CustomObjectFieldValue()
1410
- ),
1411
- type: Joi.string().allow(""),
1412
- definition_id: Joi.string().allow(""),
1413
- });
1414
- }
1415
-
1416
- /** @returns {CustomObjectByIdSchema} */
1417
- static CustomObjectByIdSchema() {
1418
- return Joi.object({
1419
- _id: Joi.string().allow(""),
1420
- status: Joi.string().allow(""),
1421
- display_name: Joi.string().allow(""),
1422
- definition: ContentApplicationModel.CustomObjectListItemDefinationSchema(),
1423
- references: Joi.array().items(Joi.any()),
1424
- fields: Joi.array().items(
1425
- ContentApplicationModel.CustomObjectFieldSchema()
1426
- ),
1427
- });
1428
- }
1429
-
1430
- /** @returns {CustomFieldValue} */
1431
- static CustomFieldValue() {
1432
- return Joi.object({
1433
- value: Joi.any(),
1434
- });
1435
- }
1436
-
1437
- /** @returns {CustomFieldSchema} */
1438
- static CustomFieldSchema() {
1439
- return Joi.object({
1440
- _id: Joi.string().allow(""),
1441
- namespace: Joi.string().allow(""),
1442
- key: Joi.string().allow(""),
1443
- resource: Joi.string().allow(""),
1444
- creator: Joi.string().allow(""),
1445
- value: Joi.array().items(ContentApplicationModel.CustomFieldValue()),
1446
- resource_id: Joi.string().allow(""),
1447
- type: Joi.string().allow(""),
1448
- multi_value: Joi.boolean(),
1449
- company_id: Joi.string().allow(""),
1450
- application_id: Joi.string().allow(""),
1451
- definition_id: Joi.string().allow(""),
1452
- has_invalid_values: Joi.boolean(),
1453
- invalid_value_errors: Joi.array().items(Joi.any()),
1454
- created_by: Joi.string().allow(""),
1455
- is_deleted: Joi.boolean(),
1456
- created_at: Joi.string().allow(""),
1457
- updated_at: Joi.string().allow(""),
1458
- });
1459
- }
1460
-
1461
- /** @returns {CustomFieldsResponseByResourceIdSchema} */
1462
- static CustomFieldsResponseByResourceIdSchema() {
1463
- return Joi.object({
1464
- items: Joi.array().items(ContentApplicationModel.CustomFieldSchema()),
1465
- });
1466
- }
1467
-
1468
- /** @returns {ActionPage} */
1469
- static ActionPage() {
1470
- return Joi.object({
1471
- params: Joi.object().pattern(
1472
- /\S/,
1473
- Joi.array().items(Joi.string().allow(""))
1474
- ),
1475
- query: Joi.object().pattern(
1476
- /\S/,
1477
- Joi.array().items(Joi.string().allow(""))
1478
- ),
1479
- url: Joi.string().allow(""),
1480
- type: ContentApplicationModel.PageType().required(),
1481
- });
1482
- }
1483
-
1484
- /**
1485
- * Enum: PageType Used By: Content
1486
- *
1487
- * @returns {PageType}
1488
- */
1489
- static PageType() {
1490
- return Joi.string().valid(
1491
- "about-us",
1492
-
1493
- "addresses",
1494
-
1495
- "blog",
1496
-
1497
- "brands",
1498
-
1499
- "cards",
1500
-
1501
- "cart",
1502
-
1503
- "categories",
1504
-
1505
- "brand",
1506
-
1507
- "category",
1508
-
1509
- "collection",
1510
-
1511
- "collections",
1512
-
1513
- "custom",
1514
-
1515
- "contact-us",
1516
-
1517
- "external",
1518
-
1519
- "faq",
1520
-
1521
- "freshchat",
1522
-
1523
- "home",
1524
-
1525
- "notification-settings",
1526
-
1527
- "orders",
1528
-
1529
- "page",
1530
-
1531
- "policy",
1532
-
1533
- "product",
1534
-
1535
- "product-request",
1536
-
1537
- "products",
1538
-
1539
- "profile",
1540
-
1541
- "profile-order-shipment",
1542
-
1543
- "profile-basic",
1544
-
1545
- "profile-company",
1546
-
1547
- "profile-emails",
1548
-
1549
- "profile-phones",
1550
-
1551
- "rate-us",
1552
-
1553
- "refer-earn",
1554
-
1555
- "settings",
1556
-
1557
- "shared-cart",
1558
-
1559
- "tnc",
1560
-
1561
- "track-order",
1562
-
1563
- "wishlist",
1564
-
1565
- "sections",
1566
-
1567
- "form",
1568
-
1569
- "cart-delivery",
1570
-
1571
- "cart-payment",
1572
-
1573
- "cart-review",
1574
-
1575
- "login",
1576
-
1577
- "register",
1578
-
1579
- "shipping-policy",
1580
-
1581
- "return-policy",
1582
-
1583
- "order-status",
1584
-
1585
- "locate-us"
1586
- );
1587
- }
1588
- }
1589
- module.exports = ContentApplicationModel;