@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,1338 +1,1357 @@
1
1
  const Joi = require("joi");
2
2
 
3
3
  /**
4
- * @typedef ApplicationItemMOQ
5
- * @property {number} [increment_unit] - The minimum quantity increment in which
6
- * the item can be purchased.
7
- * @property {number} [maximum] - The maximum quantity allowed for purchase.
8
- * @property {number} [minimum] - The minimum quantity required for purchase.
4
+ * @typedef ProductDetailCustomOrder
5
+ * @property {number} [manufacturing_time]
6
+ * @property {string} [manufacturing_time_unit]
7
+ * @property {boolean} [is_custom_order]
9
8
  */
10
9
 
11
10
  /**
12
- * @typedef ApplicationItemSEO
13
- * @property {Object} [description] - The SEO description of the item
14
- * @property {Object} [title] - The SEO title of the item
11
+ * @typedef Meta
12
+ * @property {string} [source]
15
13
  */
16
14
 
17
15
  /**
18
- * @typedef ApplicationStoreListing
19
- * @property {Object[]} [filters]
20
- * @property {AppStore[]} [items]
21
- * @property {Page} [page]
16
+ * @typedef Media
17
+ * @property {string} [url]
18
+ * @property {string} [type]
19
+ * @property {Meta} [meta]
20
+ * @property {string} [alt]
22
21
  */
23
22
 
24
23
  /**
25
- * @typedef AppStore
26
- * @property {StoreAddressSerializer} [address]
27
- * @property {CompanyStore} [company]
28
- * @property {SellerPhoneNumber[]} [contact_numbers]
29
- * @property {StoreDepartments[]} [departments]
30
- * @property {StoreManagerSerializer} [manager]
31
- * @property {string} [name]
32
- * @property {string} [store_code]
33
- * @property {number} [uid]
24
+ * @typedef ProductListingActionPage
25
+ * @property {string} [type]
26
+ * @property {Object} [query]
27
+ * @property {Object} [params]
34
28
  */
35
29
 
36
30
  /**
37
- * @typedef ArticleAssignmentV3
38
- * @property {string} [level]
39
- * @property {string} [strategy]
31
+ * @typedef ProductListingAction
32
+ * @property {string} [type]
33
+ * @property {ProductListingActionPage} [page]
40
34
  */
41
35
 
42
36
  /**
43
- * @typedef AttributeDetail
37
+ * @typedef ProductBrand
38
+ * @property {number} [uid]
39
+ * @property {Media} [logo]
44
40
  * @property {string} [description]
45
- * @property {string} [display]
46
- * @property {string} [key]
47
- * @property {string} [logo]
41
+ * @property {string} [name]
42
+ * @property {ProductListingAction} [action]
48
43
  */
49
44
 
50
45
  /**
51
- * @typedef AttributeMetadata
52
- * @property {AttributeDetail[]} [details]
53
- * @property {string} [title]
46
+ * @typedef ProductDepartment
47
+ * @property {number} [uid]
48
+ * @property {Media} [logo]
49
+ * @property {string} [slug]
50
+ * @property {string} [name]
54
51
  */
55
52
 
56
53
  /**
57
- * @typedef AutocompleteItem
58
- * @property {Object} [_custom_json]
59
- * @property {ProductListingAction} [action]
60
- * @property {string} [display]
61
- * @property {Media} [logo]
62
- * @property {string} [type]
54
+ * @typedef ProductCategoryMap
55
+ * @property {ProductBrand} [l1]
56
+ * @property {ProductBrand} [l2]
57
+ * @property {ProductBrand} [l3]
63
58
  */
64
59
 
65
60
  /**
66
- * @typedef AutoCompleteResponse
67
- * @property {AutocompleteItem[]} [items]
61
+ * @typedef NetQuantity
62
+ * @property {Object} [unit] - The unit of measurement used for the net quantity
63
+ * of the product.
64
+ * @property {number} [value] - The value of the net quantity of the product.
68
65
  */
69
66
 
70
67
  /**
71
- * @typedef BrandDetailResponse
72
- * @property {Object} [_custom_json]
73
- * @property {ImageUrls} [banners]
74
- * @property {string} [description]
75
- * @property {Media} [logo]
76
- * @property {string} [name]
77
- * @property {number} [uid]
68
+ * @typedef CustomMetaFields
69
+ * @property {string} value - A value to store in the custom field.
70
+ * @property {string} key - A key to store a custom field.
78
71
  */
79
72
 
80
73
  /**
81
- * @typedef BrandItem
82
- * @property {ProductListingAction} [action]
83
- * @property {ImageUrls} [banners]
84
- * @property {string[]} [departments]
85
- * @property {string} [description]
86
- * @property {string} [discount]
87
- * @property {Media} [logo]
88
- * @property {string} [name]
89
- * @property {string} [slug]
90
- * @property {number} [uid]
74
+ * @typedef ApplicationItemSEO
75
+ * @property {Object} [title] - The SEO title of the item
76
+ * @property {Object} [description] - The SEO description of the item
91
77
  */
92
78
 
93
79
  /**
94
- * @typedef BrandListingResponse
95
- * @property {BrandItem[]} [items]
96
- * @property {Page} page
80
+ * @typedef ProductDetailAttribute
81
+ * @property {string} [value]
82
+ * @property {string} [type]
83
+ * @property {string} [key]
97
84
  */
98
85
 
99
86
  /**
100
- * @typedef CategoryBanner
101
- * @property {Media} landscape
102
- * @property {Media} portrait
87
+ * @typedef ProductDetailGroupedAttribute
88
+ * @property {string} [title]
89
+ * @property {ProductDetailAttribute[]} [details]
103
90
  */
104
91
 
105
92
  /**
106
- * @typedef CategoryItems
107
- * @property {ProductListingAction} action
108
- * @property {CategoryBanner} banners
109
- * @property {Child[]} [childs]
110
- * @property {string} name
111
- * @property {string} slug
112
- * @property {number} uid
93
+ * @typedef ApplicationItemMOQ
94
+ * @property {number} [minimum] - The minimum quantity required for purchase.
95
+ * @property {number} [maximum] - The maximum quantity allowed for purchase.
96
+ * @property {number} [increment_unit] - The minimum quantity increment in which
97
+ * the item can be purchased.
113
98
  */
114
99
 
115
100
  /**
116
- * @typedef CategoryListingResponse
117
- * @property {DepartmentCategoryTree[]} [data]
118
- * @property {DepartmentIdentifier[]} [departments]
101
+ * @typedef Price
102
+ * @property {number} [min] - The minimum price for the product across stores.
103
+ * @property {string} [currency_symbol] - The currency symbol for the currency
104
+ * in which the product is available.
105
+ * @property {string} [currency_code] - The currency code for the currency in
106
+ * which the product is available.
107
+ * @property {number} [max] - The maximum price for the product across stores.
119
108
  */
120
109
 
121
110
  /**
122
- * @typedef CategoryMetaResponse
123
- * @property {Object} [_custom_json]
124
- * @property {ImageUrls} [banners]
125
- * @property {Media} [logo]
126
- * @property {string} [name]
127
- * @property {number} [uid]
111
+ * @typedef ProductListingPrice
112
+ * @property {Price} [effective]
113
+ * @property {Price} [marked]
128
114
  */
129
115
 
130
116
  /**
131
- * @typedef Child
132
- * @property {Object} [_custom_json]
133
- * @property {ProductListingAction} [action]
134
- * @property {ImageUrls} [banners]
135
- * @property {SecondLevelChild[]} [childs]
136
- * @property {string} [name]
137
- * @property {string} [slug]
138
- * @property {number} [uid]
117
+ * @typedef ProductSizesPrice
118
+ * @property {Price} [effective]
119
+ * @property {Price} [marked]
120
+ * @property {Price} [selling]
139
121
  */
140
122
 
141
123
  /**
142
- * @typedef CollectionDetailResponse
143
- * @property {Object} [_custom_json]
144
- * @property {Object} [_schedule]
145
- * @property {boolean} [allow_facets]
146
- * @property {boolean} [allow_sort]
147
- * @property {string} [app_id]
148
- * @property {Object} [badge]
149
- * @property {ImageUrls} [banners]
150
- * @property {Object} [cron]
124
+ * @typedef ProductDetail
125
+ * @property {number} [uid]
126
+ * @property {ProductDetailCustomOrder} [custom_order]
127
+ * @property {ProductCategoryMap} [category_map]
128
+ * @property {NetQuantity} [net_quantity]
129
+ * @property {number} [rating_count]
130
+ * @property {CustomMetaFields[]} [_custom_meta]
131
+ * @property {string[]} [similars]
132
+ * @property {string[]} [tags]
133
+ * @property {ApplicationItemSEO} [seo]
134
+ * @property {string} [image_nature]
135
+ * @property {boolean} [has_variant]
136
+ * @property {string} [item_type]
151
137
  * @property {string} [description]
152
- * @property {boolean} [is_active]
153
- * @property {Media} [logo]
154
- * @property {Object} [meta]
155
- * @property {string} [name]
156
- * @property {number} [priority]
157
- * @property {CollectionQuery[]} [query]
158
- * @property {string} [slug]
159
- * @property {string} [sort_on]
160
- * @property {string[]} [tag]
138
+ * @property {ProductDetailGroupedAttribute[]} [grouped_attributes]
139
+ * @property {Media[]} [medias]
140
+ * @property {string} [color]
161
141
  * @property {string} [type]
162
- * @property {string[]} [visible_facets_keys]
142
+ * @property {string} [product_online_date]
143
+ * @property {Object} [_custom_json]
144
+ * @property {string} [item_code]
145
+ * @property {string} [name]
146
+ * @property {ApplicationItemMOQ} [moq]
147
+ * @property {string} [short_description]
148
+ * @property {ProductBrand[]} [categories]
149
+ * @property {Object} [attributes]
150
+ * @property {string} [discount]
151
+ * @property {string[]} [tryouts]
152
+ * @property {string} slug
153
+ * @property {ProductListingAction} [action]
154
+ * @property {number} [rating]
155
+ * @property {boolean} [is_dependent]
156
+ * @property {string[]} [product_group_tag]
157
+ * @property {string[]} [highlights]
158
+ * @property {ProductListingPrice} [price]
159
+ * @property {ProductBrand} [brand]
160
+ * @property {ProductDepartment} [department]
161
+ * @property {string} [teaser_tag]
163
162
  */
164
163
 
165
164
  /**
166
- * @typedef CollectionListingFilter
167
- * @property {CollectionListingFilterTag[]} [tags]
168
- * @property {CollectionListingFilterType[]} [type]
165
+ * @typedef ErrorResponse
166
+ * @property {string} [error]
169
167
  */
170
168
 
171
169
  /**
172
- * @typedef CollectionListingFilterTag
173
- * @property {string} [display]
174
- * @property {boolean} [is_selected]
175
- * @property {string} [name]
170
+ * @typedef Dimension
171
+ * @property {string} unit - The unit of dimension
172
+ * @property {number} height - The height of the product
173
+ * @property {number} length - The length of the product
174
+ * @property {number} width - The width of the product
175
+ * @property {boolean} is_default - Whether the dimension is the default one or not
176
176
  */
177
177
 
178
178
  /**
179
- * @typedef CollectionListingFilterType
180
- * @property {string} [display]
181
- * @property {boolean} [is_selected]
182
- * @property {string} [name]
179
+ * @typedef Weight
180
+ * @property {string} unit - The unit of weight
181
+ * @property {number} shipping - The shipping weight of the product
182
+ * @property {boolean} is_default - Whether the weight is the default one or not
183
183
  */
184
184
 
185
185
  /**
186
- * @typedef CollectionQuery
187
- * @property {string} attribute
188
- * @property {string} op
189
- * @property {Object[]} value
186
+ * @typedef DiscountMeta
187
+ * @property {boolean} timer - Determines whether the discount countdown is
188
+ * visible or not.
189
+ * @property {number} [start_timer_in_minutes] - The time in minutes before the
190
+ * discount ends when the countdown timer should start.
191
+ * @property {string} [start] - The start time of the live discount.
192
+ * @property {string} [end] - The end time of the live discount.
190
193
  */
191
194
 
192
195
  /**
193
- * @typedef ColumnHeader
194
- * @property {boolean} [convertable]
196
+ * @typedef ProductSize
197
+ * @property {number} [quantity]
198
+ * @property {Dimension} [dimension]
199
+ * @property {Weight} [weight]
200
+ * @property {boolean} [is_available]
201
+ * @property {string[]} [seller_identifiers]
195
202
  * @property {string} [value]
203
+ * @property {string} [display]
196
204
  */
197
205
 
198
206
  /**
199
- * @typedef ColumnHeaders
200
- * @property {ColumnHeader} [col_1]
201
- * @property {ColumnHeader} [col_2]
202
- * @property {ColumnHeader} [col_3]
203
- * @property {ColumnHeader} [col_4]
204
- * @property {ColumnHeader} [col_5]
205
- * @property {ColumnHeader} [col_6]
206
- */
207
-
208
- /**
209
- * @typedef CompanyDetail
210
- * @property {number} [id]
211
- * @property {string} [name]
212
- */
213
-
214
- /**
215
- * @typedef CompanyStore
216
- * @property {string} [business_type]
217
- * @property {string} [company_type]
218
- * @property {string} [name]
219
- * @property {number} [uid]
207
+ * @typedef SizeChartValues
208
+ * @property {string} [col_3]
209
+ * @property {string} [col_6]
210
+ * @property {string} [col_2]
211
+ * @property {string} [col_4]
212
+ * @property {string} [col_1]
213
+ * @property {string} [col_5]
220
214
  */
221
215
 
222
216
  /**
223
- * @typedef CustomMetaFields
224
- * @property {string} key - A key to store a custom field.
225
- * @property {string} value - A value to store in the custom field.
217
+ * @typedef ColumnHeader
218
+ * @property {boolean} [convertable]
219
+ * @property {string} [value]
226
220
  */
227
221
 
228
222
  /**
229
- * @typedef Department
230
- * @property {Media} [logo]
231
- * @property {string} [name]
232
- * @property {number} [priority_order]
233
- * @property {string} [slug]
234
- * @property {number} [uid]
223
+ * @typedef ColumnHeaders
224
+ * @property {ColumnHeader} [col_3]
225
+ * @property {ColumnHeader} [col_6]
226
+ * @property {ColumnHeader} [col_2]
227
+ * @property {ColumnHeader} [col_4]
228
+ * @property {ColumnHeader} [col_1]
229
+ * @property {ColumnHeader} [col_5]
235
230
  */
236
231
 
237
232
  /**
238
- * @typedef DepartmentCategoryTree
239
- * @property {string} department
240
- * @property {CategoryItems[]} [items]
233
+ * @typedef SizeChart
234
+ * @property {string} [unit]
235
+ * @property {string} [image]
236
+ * @property {string} [size_tip]
237
+ * @property {SizeChartValues[]} [sizes]
238
+ * @property {string} [description]
239
+ * @property {string} [title]
240
+ * @property {ColumnHeaders} [headers]
241
241
  */
242
242
 
243
243
  /**
244
- * @typedef DepartmentIdentifier
245
- * @property {string} [slug]
246
- * @property {number} [uid]
244
+ * @typedef ProductSizeStores
245
+ * @property {number} [count]
247
246
  */
248
247
 
249
248
  /**
250
- * @typedef DepartmentResponse
251
- * @property {Department[]} [items]
249
+ * @typedef ProductSizes
250
+ * @property {ProductSize[]} [sizes]
251
+ * @property {ProductSizesPrice} [price]
252
+ * @property {SizeChart} [size_chart]
253
+ * @property {boolean} [sellable]
254
+ * @property {boolean} [multi_size]
255
+ * @property {string} [discount]
256
+ * @property {ProductSizeStores} [stores]
257
+ * @property {DiscountMeta} [discount_meta]
252
258
  */
253
259
 
254
260
  /**
255
- * @typedef DetailsSchemaV3
261
+ * @typedef AttributeDetail
262
+ * @property {string} [logo]
263
+ * @property {string} [description]
264
+ * @property {string} [display]
256
265
  * @property {string} [key]
257
- * @property {string} [type]
258
- * @property {string} [value]
259
- */
260
-
261
- /**
262
- * @typedef Dimension
263
- * @property {number} height - The height of the product
264
- * @property {boolean} is_default - Whether the dimension is the default one or not
265
- * @property {number} length - The length of the product
266
- * @property {string} unit - The unit of dimension
267
- * @property {number} width - The width of the product
268
- */
269
-
270
- /**
271
- * @typedef DiscountMeta
272
- * @property {string} [end] - The end time of the live discount.
273
- * @property {string} [start] - The start time of the live discount.
274
- * @property {number} [start_timer_in_minutes] - The time in minutes before the
275
- * discount ends when the countdown timer should start.
276
- * @property {boolean} timer - Determines whether the discount countdown is
277
- * visible or not.
278
266
  */
279
267
 
280
268
  /**
281
- * @typedef ErrorResponse
282
- * @property {string} [error]
283
- */
284
-
285
- /**
286
- * @typedef FollowerCountResponse
287
- * @property {number} [count]
269
+ * @typedef AttributeMetadata
270
+ * @property {string} [title]
271
+ * @property {AttributeDetail[]} [details]
288
272
  */
289
273
 
290
274
  /**
291
- * @typedef FollowIdsData
292
- * @property {number[]} [brands]
293
- * @property {number[]} [collections]
294
- * @property {number[]} [products]
275
+ * @typedef ProductsComparisonResponse
276
+ * @property {ProductDetail[]} [items]
277
+ * @property {AttributeMetadata[]} [attributes_metadata]
295
278
  */
296
279
 
297
280
  /**
298
- * @typedef FollowIdsResponse
299
- * @property {FollowIdsData} [data]
281
+ * @typedef ProductCompareResponse
282
+ * @property {string} [title]
283
+ * @property {ProductDetail[]} [items]
284
+ * @property {AttributeMetadata[]} [attributes_metadata]
285
+ * @property {string} [subtitle]
300
286
  */
301
287
 
302
288
  /**
303
- * @typedef FollowPostResponse
304
- * @property {string} id
305
- * @property {string} message
289
+ * @typedef ProductFrequentlyComparedSimilarResponse
290
+ * @property {ProductCompareResponse} [similars]
306
291
  */
307
292
 
308
293
  /**
309
- * @typedef GetCollectionDetailNest
310
- * @property {Object} [_custom_json]
311
- * @property {Object} [_schedule]
312
- * @property {ProductListingAction} [action]
313
- * @property {boolean} [allow_facets]
314
- * @property {boolean} [allow_sort]
315
- * @property {string} [app_id]
316
- * @property {Object} [badge]
317
- * @property {ImageUrls} [banners]
318
- * @property {Object} [cron]
319
- * @property {string} [description]
320
- * @property {boolean} [is_active]
321
- * @property {Media} [logo]
322
- * @property {Object} [meta]
294
+ * @typedef ProductVariantItemResponse
295
+ * @property {number} [uid]
296
+ * @property {string} [color_name]
297
+ * @property {string} [color]
298
+ * @property {Media[]} [medias]
299
+ * @property {boolean} [is_available]
300
+ * @property {CustomMetaFields[]} [_custom_meta]
323
301
  * @property {string} [name]
324
- * @property {number} [priority]
325
- * @property {CollectionQuery[]} [query]
302
+ * @property {string} [value]
326
303
  * @property {string} [slug]
327
- * @property {string} [sort_on]
328
- * @property {string[]} [tags]
329
- * @property {string} [type]
330
- * @property {string} [uid]
331
- * @property {string[]} [visible_facets_keys]
332
- */
333
-
334
- /**
335
- * @typedef GetCollectionListingResponse
336
- * @property {CollectionListingFilter} [filters]
337
- * @property {GetCollectionDetailNest[]} [items]
338
- * @property {Page} page
304
+ * @property {ProductListingAction} [action]
339
305
  */
340
306
 
341
307
  /**
342
- * @typedef GetFollowListingResponse
343
- * @property {ProductListingDetail[]} items
344
- * @property {Page} page
308
+ * @typedef ProductVariantResponse
309
+ * @property {string} [display_type]
310
+ * @property {string} [header]
311
+ * @property {ProductVariantItemResponse[]} [items]
312
+ * @property {string} [key]
345
313
  */
346
314
 
347
315
  /**
348
- * @typedef HomeListingResponse
349
- * @property {ProductListingDetail[]} [items]
350
- * @property {string} [message]
351
- * @property {Page} page
316
+ * @typedef ProductVariantsResponse
317
+ * @property {ProductVariantResponse[]} [variants]
352
318
  */
353
319
 
354
320
  /**
355
- * @typedef ImageUrls
356
- * @property {Media} [landscape]
357
- * @property {Media} [portrait]
321
+ * @typedef StoreDetail
322
+ * @property {string} [name]
323
+ * @property {string} [city]
324
+ * @property {number} [id]
325
+ * @property {string} [code]
358
326
  */
359
327
 
360
328
  /**
361
- * @typedef LatLong
362
- * @property {number[]} [coordinates]
363
- * @property {string} [type]
329
+ * @typedef ProductStockPrice
330
+ * @property {number} [effective]
331
+ * @property {string} [currency]
332
+ * @property {number} [marked]
364
333
  */
365
334
 
366
335
  /**
367
- * @typedef MarketPlaceSttributesSchemaV3
368
- * @property {DetailsSchemaV3[]} [details]
369
- * @property {string} [title]
336
+ * @typedef CompanyDetail
337
+ * @property {string} [name]
338
+ * @property {number} [id]
370
339
  */
371
340
 
372
341
  /**
373
- * @typedef Media
374
- * @property {string} [alt]
375
- * @property {Meta} [meta]
376
- * @property {string} [type]
377
- * @property {string} [url]
342
+ * @typedef Seller
343
+ * @property {number} [uid]
344
+ * @property {string} [name]
345
+ * @property {number} [count]
378
346
  */
379
347
 
380
348
  /**
381
- * @typedef Meta
382
- * @property {string} [source]
349
+ * @typedef ProductStockStatusItem
350
+ * @property {string} [uid]
351
+ * @property {number} [quantity]
352
+ * @property {StoreDetail} [store]
353
+ * @property {string} [size]
354
+ * @property {ProductStockPrice} [price]
355
+ * @property {CompanyDetail} [company]
356
+ * @property {number} [item_id]
357
+ * @property {Seller} [seller]
358
+ * @property {Object} [identifier]
383
359
  */
384
360
 
385
361
  /**
386
- * @typedef NetQuantity
387
- * @property {Object} [unit] - The unit of measurement used for the net quantity
388
- * of the product.
389
- * @property {number} [value] - The value of the net quantity of the product.
362
+ * @typedef ProductStockStatusResponse
363
+ * @property {ProductStockStatusItem[]} [items]
390
364
  */
391
365
 
392
366
  /**
393
367
  * @typedef Page
394
- * @property {number} [current]
395
- * @property {boolean} [has_next]
396
- * @property {boolean} [has_previous]
397
368
  * @property {number} [item_total]
398
369
  * @property {string} [next_id]
399
- * @property {number} [size]
370
+ * @property {boolean} [has_previous]
371
+ * @property {boolean} [has_next]
372
+ * @property {number} [current]
400
373
  * @property {string} type
374
+ * @property {number} [size]
401
375
  */
402
376
 
403
377
  /**
404
- * @typedef Price
405
- * @property {string} [currency_code] - The currency code for the currency in
406
- * which the product is available.
407
- * @property {string} [currency_symbol] - The currency symbol for the currency
408
- * in which the product is available.
409
- * @property {number} [max] - The maximum price for the product across stores.
410
- * @property {number} [min] - The minimum price for the product across stores.
378
+ * @typedef ProductStockPolling
379
+ * @property {ProductStockStatusItem[]} [items]
380
+ * @property {Page} page
411
381
  */
412
382
 
413
383
  /**
414
- * @typedef ProductBrand
415
- * @property {ProductListingAction} [action]
416
- * @property {string} [description]
417
- * @property {Media} [logo]
418
- * @property {string} [name]
419
- * @property {number} [uid]
384
+ * @typedef ProductVariantListingResponse
385
+ * @property {string} [header]
386
+ * @property {ProductVariantItemResponse[]} [items]
387
+ * @property {number} [total]
388
+ * @property {string} [key]
389
+ * @property {string} [display_type]
420
390
  */
421
391
 
422
392
  /**
423
- * @typedef ProductBundle
424
- * @property {ProductGroupingModel[]} [items]
393
+ * @typedef ProductListingDetail
394
+ * @property {number} [uid]
395
+ * @property {ProductDetailCustomOrder} [custom_order]
396
+ * @property {string[]} [sizes]
397
+ * @property {ProductCategoryMap} [category_map]
398
+ * @property {NetQuantity} [net_quantity]
399
+ * @property {number} [rating_count]
400
+ * @property {CustomMetaFields[]} [_custom_meta]
401
+ * @property {string[]} [similars]
402
+ * @property {string[]} [tags]
403
+ * @property {ApplicationItemSEO} [seo]
404
+ * @property {string} [image_nature]
405
+ * @property {boolean} [has_variant]
406
+ * @property {string} [item_type]
407
+ * @property {string} [description]
408
+ * @property {ProductDetailGroupedAttribute[]} [grouped_attributes]
409
+ * @property {Media[]} [medias]
410
+ * @property {string} [color]
411
+ * @property {string} [type]
412
+ * @property {string} [product_online_date]
413
+ * @property {Object} [_custom_json]
414
+ * @property {string} [item_code]
415
+ * @property {string} [name]
416
+ * @property {ApplicationItemMOQ} [moq]
417
+ * @property {string} [short_description]
418
+ * @property {ProductBrand[]} [categories]
419
+ * @property {boolean} [sellable]
420
+ * @property {Object} [attributes]
421
+ * @property {ProductVariantListingResponse[]} [variants]
422
+ * @property {string} [discount]
423
+ * @property {string[]} [tryouts]
424
+ * @property {string[]} [identifiers]
425
+ * @property {string} slug
426
+ * @property {ProductListingAction} [action]
427
+ * @property {number} [rating]
428
+ * @property {boolean} [is_dependent]
429
+ * @property {string[]} [product_group_tag]
430
+ * @property {string[]} [highlights]
431
+ * @property {ProductListingPrice} [price]
432
+ * @property {ProductBrand} [brand]
433
+ * @property {string} [teaser_tag]
425
434
  */
426
435
 
427
436
  /**
428
- * @typedef ProductCategoryMap
429
- * @property {ProductBrand} [l1]
430
- * @property {ProductBrand} [l2]
431
- * @property {ProductBrand} [l3]
437
+ * @typedef ProductFiltersValue
438
+ * @property {number} [min]
439
+ * @property {string} [display_format]
440
+ * @property {number} [selected_max]
441
+ * @property {string} [value]
442
+ * @property {string} [query_format]
443
+ * @property {string} [currency_symbol]
444
+ * @property {number} [selected_min]
445
+ * @property {string} [currency_code]
446
+ * @property {boolean} is_selected
447
+ * @property {string} display
448
+ * @property {number} [count]
449
+ * @property {number} [max]
432
450
  */
433
451
 
434
452
  /**
435
- * @typedef ProductCompareResponse
436
- * @property {AttributeMetadata[]} [attributes_metadata]
437
- * @property {ProductDetail[]} [items]
438
- * @property {string} [subtitle]
439
- * @property {string} [title]
453
+ * @typedef ProductFiltersKey
454
+ * @property {string} [logo]
455
+ * @property {string} name
456
+ * @property {string} [kind]
457
+ * @property {string} display
440
458
  */
441
459
 
442
460
  /**
443
- * @typedef ProductDepartment
444
- * @property {Media} [logo]
461
+ * @typedef ProductFilters
462
+ * @property {ProductFiltersValue[]} values
463
+ * @property {ProductFiltersKey} key
464
+ */
465
+
466
+ /**
467
+ * @typedef ProductSortOn
468
+ * @property {string} [logo]
469
+ * @property {boolean} [is_selected]
445
470
  * @property {string} [name]
446
- * @property {string} [slug]
447
- * @property {number} [uid]
471
+ * @property {string} [value]
472
+ * @property {string} [display]
448
473
  */
449
474
 
450
475
  /**
451
- * @typedef ProductDetail
452
- * @property {Object} [_custom_json]
453
- * @property {CustomMetaFields[]} [_custom_meta]
454
- * @property {ProductListingAction} [action]
455
- * @property {Object} [attributes]
456
- * @property {ProductBrand} [brand]
457
- * @property {ProductBrand[]} [categories]
458
- * @property {ProductCategoryMap} [category_map]
459
- * @property {string} [color]
460
- * @property {ProductDetailCustomOrder} [custom_order]
461
- * @property {ProductDepartment} [department]
476
+ * @typedef ProductListingResponse
477
+ * @property {ProductListingDetail[]} [items]
478
+ * @property {ProductFilters[]} [filters]
479
+ * @property {Page} page
480
+ * @property {ProductSortOn[]} [sort_on]
481
+ */
482
+
483
+ /**
484
+ * @typedef ImageUrls
485
+ * @property {Media} [portrait]
486
+ * @property {Media} [landscape]
487
+ */
488
+
489
+ /**
490
+ * @typedef BrandItem
491
+ * @property {number} [uid]
492
+ * @property {Media} [logo]
462
493
  * @property {string} [description]
494
+ * @property {ImageUrls} [banners]
495
+ * @property {string[]} [departments]
463
496
  * @property {string} [discount]
464
- * @property {ProductDetailGroupedAttribute[]} [grouped_attributes]
465
- * @property {boolean} [has_variant]
466
- * @property {string[]} [highlights]
467
- * @property {string} [image_nature]
468
- * @property {boolean} [is_dependent]
469
- * @property {string} [item_code]
470
- * @property {string} [item_type]
471
- * @property {Media[]} [medias]
472
- * @property {ApplicationItemMOQ} [moq]
473
497
  * @property {string} [name]
474
- * @property {NetQuantity} [net_quantity]
475
- * @property {ProductListingPrice} [price]
476
- * @property {string[]} [product_group_tag]
477
- * @property {string} [product_online_date]
478
- * @property {number} [rating]
479
- * @property {number} [rating_count]
480
- * @property {ApplicationItemSEO} [seo]
481
- * @property {string} [short_description]
482
- * @property {string[]} [similars]
483
- * @property {string} slug
484
- * @property {string[]} [tags]
485
- * @property {string} [teaser_tag]
486
- * @property {string[]} [tryouts]
487
- * @property {string} [type]
488
- * @property {number} [uid]
498
+ * @property {string} [slug]
499
+ * @property {ProductListingAction} [action]
489
500
  */
490
501
 
491
502
  /**
492
- * @typedef ProductDetailAttribute
493
- * @property {string} [key]
494
- * @property {string} [type]
495
- * @property {string} [value]
503
+ * @typedef BrandListingResponse
504
+ * @property {BrandItem[]} [items]
505
+ * @property {Page} page
496
506
  */
497
507
 
498
508
  /**
499
- * @typedef ProductDetailCustomOrder
500
- * @property {boolean} [is_custom_order]
501
- * @property {number} [manufacturing_time]
502
- * @property {string} [manufacturing_time_unit]
509
+ * @typedef BrandDetailResponse
510
+ * @property {Media} [logo]
511
+ * @property {number} [uid]
512
+ * @property {string} [description]
513
+ * @property {ImageUrls} [banners]
514
+ * @property {Object} [_custom_json]
515
+ * @property {string} [name]
503
516
  */
504
517
 
505
518
  /**
506
- * @typedef ProductDetailGroupedAttribute
507
- * @property {ProductDetailAttribute[]} [details]
508
- * @property {string} [title]
519
+ * @typedef CategoryBanner
520
+ * @property {Media} portrait
521
+ * @property {Media} landscape
509
522
  */
510
523
 
511
524
  /**
512
- * @typedef ProductDetails
513
- * @property {Object} [attributes] - A dictionary of product attributes
514
- * @property {number} [brand_uid] - The unique ID of the product's brand
515
- * @property {Object} [country_of_origin] - The country of origin for the product
516
- * @property {Object} [description] - The long description of the product
517
- * @property {Object} [grouped_attributes] - A dictionary of grouped product attributes
518
- * @property {boolean} [has_variant] - Whether or not the product has a variant
519
- * @property {Object[]} [highlights] - A list of highlights for the product
520
- * @property {number} [hsn_code] - The HSN code of the product
521
- * @property {Object} [identifier] - A dictionary of product identifiers
522
- * @property {Object} [image_nature] - The nature of the product's images
523
- * @property {Object[]} [images] - A list of image URLs for the product
524
- * @property {boolean} [is_set] - Whether or not the product is a set of items
525
- * @property {Object} [item_code] - The item code of the product
526
- * @property {Object[]} [media] - A list of media objects for the product
527
- * @property {Object} [name] - The name of the product
528
- * @property {boolean} [out_of_stock] - Whether or not the product is out of stock
529
- * @property {number} [rating] - The rating of the product
530
- * @property {number} [rating_count] - The number of ratings the product has received
531
- * @property {Object} [short_description] - The short description of the product
532
- * @property {Object} [slug] - The slug of the product
533
- * @property {Object} [template_tag] - The template tag of the product
525
+ * @typedef ThirdLevelChild
526
+ * @property {number} [uid]
527
+ * @property {ImageUrls} [banners]
528
+ * @property {Object[]} [childs]
529
+ * @property {Object} [_custom_json]
530
+ * @property {string} [name]
531
+ * @property {string} [slug]
532
+ * @property {ProductListingAction} [action]
534
533
  */
535
534
 
536
535
  /**
537
- * @typedef ProductFilters
538
- * @property {ProductFiltersKey} key
539
- * @property {ProductFiltersValue[]} values
536
+ * @typedef SecondLevelChild
537
+ * @property {number} [uid]
538
+ * @property {ImageUrls} [banners]
539
+ * @property {ThirdLevelChild[]} [childs]
540
+ * @property {Object} [_custom_json]
541
+ * @property {string} [name]
542
+ * @property {string} [slug]
543
+ * @property {ProductListingAction} [action]
540
544
  */
541
545
 
542
546
  /**
543
- * @typedef ProductFiltersKey
544
- * @property {string} display
545
- * @property {string} [kind]
546
- * @property {string} [logo]
547
+ * @typedef Child
548
+ * @property {number} [uid]
549
+ * @property {ImageUrls} [banners]
550
+ * @property {SecondLevelChild[]} [childs]
551
+ * @property {Object} [_custom_json]
552
+ * @property {string} [name]
553
+ * @property {string} [slug]
554
+ * @property {ProductListingAction} [action]
555
+ */
556
+
557
+ /**
558
+ * @typedef CategoryItems
559
+ * @property {number} uid
560
+ * @property {CategoryBanner} banners
561
+ * @property {Child[]} [childs]
547
562
  * @property {string} name
563
+ * @property {string} slug
564
+ * @property {ProductListingAction} action
548
565
  */
549
566
 
550
567
  /**
551
- * @typedef ProductFiltersValue
552
- * @property {number} [count]
553
- * @property {string} [currency_code]
554
- * @property {string} [currency_symbol]
555
- * @property {string} display
556
- * @property {string} [display_format]
557
- * @property {boolean} is_selected
558
- * @property {number} [max]
559
- * @property {number} [min]
560
- * @property {string} [query_format]
561
- * @property {number} [selected_max]
562
- * @property {number} [selected_min]
563
- * @property {string} [value]
568
+ * @typedef DepartmentCategoryTree
569
+ * @property {CategoryItems[]} [items]
570
+ * @property {string} department
564
571
  */
565
572
 
566
573
  /**
567
- * @typedef ProductFrequentlyComparedSimilarResponse
568
- * @property {ProductCompareResponse} [similars]
574
+ * @typedef DepartmentIdentifier
575
+ * @property {number} [uid]
576
+ * @property {string} [slug]
569
577
  */
570
578
 
571
579
  /**
572
- * @typedef ProductGroupingModel
573
- * @property {Object} [_id]
574
- * @property {Object} [choice] - The choice of the product grouping.
575
- * @property {number} [company_id] - The ID of the company that owns the product grouping.
576
- * @property {UserDetail} [created_by] - User details of the creator of the document
577
- * @property {string} created_on - Timestamp of the creation of the document
578
- * @property {boolean} [is_active] - Whether the product grouping is active.
579
- * @property {string} [logo] - The URL for the logo of the product grouping.
580
- * @property {Object} [meta] - A dictionary containing metadata information.
581
- * @property {UserDetail} [modified_by] - User details of the last modifier of
582
- * the document
583
- * @property {string} modified_on - Timestamp of the last modification of the document
584
- * @property {Object} name - The name of the product grouping.
585
- * @property {Object[]} [page_visibility] - A list of page visibilities of the
586
- * product grouping.
587
- * @property {ProductInGroup[]} products - A list of products in the grouping.
588
- * @property {boolean} [same_store_assignment] - Whether the products are
589
- * assigned to the same store.
590
- * @property {Object} [slug] - The unique identifier for the product grouping.
591
- * @property {UserDetail} [verified_by] - User details of the verifier of the
592
- * document, if applicable
593
- * @property {string} [verified_on] - Timestamp of when the document was
594
- * verified, if applicable
580
+ * @typedef CategoryListingResponse
581
+ * @property {DepartmentCategoryTree[]} [data]
582
+ * @property {DepartmentIdentifier[]} [departments]
595
583
  */
596
584
 
597
585
  /**
598
- * @typedef ProductGroupPrice
599
- * @property {Object} [currency] - The currency code for the prices.
600
- * @property {number} [max_effective] - The maximum effective price of the product group.
601
- * @property {number} [max_marked] - The maximum marked price of the product group.
602
- * @property {number} [min_effective] - The minimum effective price of the product group.
603
- * @property {number} [min_marked] - The minimum marked price of the product group.
586
+ * @typedef CategoryMetaResponse
587
+ * @property {Media} [logo]
588
+ * @property {number} [uid]
589
+ * @property {ImageUrls} [banners]
590
+ * @property {Object} [_custom_json]
591
+ * @property {string} [name]
604
592
  */
605
593
 
606
594
  /**
607
- * @typedef ProductInGroup
608
- * @property {boolean} [allow_remove] - A flag indicating whether the product
609
- * can be removed from the cart.
610
- * @property {boolean} [auto_add_to_cart] - A flag indicating whether the
611
- * product should be automatically added to the cart.
612
- * @property {boolean} [auto_select] - A flag indicating whether the product
613
- * should be automatically selected.
614
- * @property {number} max_quantity - The maximum quantity of the product that
615
- * can be added to the cart.
616
- * @property {number} [min_quantity] - The minimum quantity of the product that
617
- * can be added to the cart.
618
- * @property {ProductGroupPrice} [price] - The price details for the product group.
619
- * @property {ProductDetails} [product_details] - The details of the product.
620
- * @property {number} product_uid - The unique ID of the product in the group.
621
- * @property {Size[]} [sizes] - The available sizes for the product.
595
+ * @typedef HomeListingResponse
596
+ * @property {ProductListingDetail[]} [items]
597
+ * @property {Page} page
598
+ * @property {string} [message]
622
599
  */
623
600
 
624
601
  /**
625
- * @typedef ProductListingAction
626
- * @property {ProductListingActionPage} [page]
627
- * @property {string} [type]
602
+ * @typedef Department
603
+ * @property {number} [uid]
604
+ * @property {Media} [logo]
605
+ * @property {number} [priority_order]
606
+ * @property {string} [name]
607
+ * @property {string} [slug]
628
608
  */
629
609
 
630
610
  /**
631
- * @typedef ProductListingActionPage
632
- * @property {Object} [params]
633
- * @property {Object} [query]
634
- * @property {string} [type]
611
+ * @typedef DepartmentResponse
612
+ * @property {Department[]} [items]
635
613
  */
636
614
 
637
615
  /**
638
- * @typedef ProductListingDetail
616
+ * @typedef AutocompleteItem
617
+ * @property {Media} [logo]
618
+ * @property {string} [display]
619
+ * @property {string} [type]
639
620
  * @property {Object} [_custom_json]
640
- * @property {CustomMetaFields[]} [_custom_meta]
641
621
  * @property {ProductListingAction} [action]
642
- * @property {Object} [attributes]
643
- * @property {ProductBrand} [brand]
644
- * @property {ProductBrand[]} [categories]
645
- * @property {ProductCategoryMap} [category_map]
646
- * @property {string} [color]
647
- * @property {ProductDetailCustomOrder} [custom_order]
622
+ */
623
+
624
+ /**
625
+ * @typedef AutoCompleteResponse
626
+ * @property {AutocompleteItem[]} [items]
627
+ */
628
+
629
+ /**
630
+ * @typedef CollectionQuery
631
+ * @property {string} op
632
+ * @property {Object[]} value
633
+ * @property {string} attribute
634
+ */
635
+
636
+ /**
637
+ * @typedef GetCollectionDetailNest
638
+ * @property {boolean} [is_active]
639
+ * @property {string} [uid]
640
+ * @property {string} [sort_on]
641
+ * @property {Object} [meta]
642
+ * @property {ImageUrls} [banners]
643
+ * @property {Object} [cron]
644
+ * @property {Object} [_schedule]
645
+ * @property {CollectionQuery[]} [query]
648
646
  * @property {string} [description]
649
- * @property {string} [discount]
650
- * @property {ProductDetailGroupedAttribute[]} [grouped_attributes]
651
- * @property {boolean} [has_variant]
652
- * @property {string[]} [highlights]
653
- * @property {string[]} [identifiers]
654
- * @property {string} [image_nature]
655
- * @property {boolean} [is_dependent]
656
- * @property {string} [item_code]
657
- * @property {string} [item_type]
658
- * @property {Media[]} [medias]
659
- * @property {ApplicationItemMOQ} [moq]
647
+ * @property {string} [type]
648
+ * @property {Object} [_custom_json]
660
649
  * @property {string} [name]
661
- * @property {NetQuantity} [net_quantity]
662
- * @property {ProductListingPrice} [price]
663
- * @property {string[]} [product_group_tag]
664
- * @property {string} [product_online_date]
665
- * @property {number} [rating]
666
- * @property {number} [rating_count]
667
- * @property {boolean} [sellable]
668
- * @property {ApplicationItemSEO} [seo]
669
- * @property {string} [short_description]
670
- * @property {string[]} [similars]
671
- * @property {string[]} [sizes]
672
- * @property {string} slug
650
+ * @property {boolean} [allow_sort]
651
+ * @property {string[]} [visible_facets_keys]
652
+ * @property {Object} [badge]
653
+ * @property {string} [slug]
654
+ * @property {ProductListingAction} [action]
655
+ * @property {boolean} [allow_facets]
656
+ * @property {Media} [logo]
657
+ * @property {number} [priority]
673
658
  * @property {string[]} [tags]
674
- * @property {string} [teaser_tag]
675
- * @property {string[]} [tryouts]
676
- * @property {string} [type]
677
- * @property {number} [uid]
678
- * @property {ProductVariantListingResponse[]} [variants]
659
+ * @property {string} [app_id]
660
+ */
661
+
662
+ /**
663
+ * @typedef CollectionListingFilterTag
664
+ * @property {string} [name]
665
+ * @property {boolean} [is_selected]
666
+ * @property {string} [display]
667
+ */
668
+
669
+ /**
670
+ * @typedef CollectionListingFilterType
671
+ * @property {string} [name]
672
+ * @property {boolean} [is_selected]
673
+ * @property {string} [display]
679
674
  */
680
675
 
681
676
  /**
682
- * @typedef ProductListingPrice
683
- * @property {Price} [effective]
684
- * @property {Price} [marked]
677
+ * @typedef CollectionListingFilter
678
+ * @property {CollectionListingFilterTag[]} [tags]
679
+ * @property {CollectionListingFilterType[]} [type]
685
680
  */
686
681
 
687
682
  /**
688
- * @typedef ProductListingResponse
689
- * @property {ProductFilters[]} [filters]
690
- * @property {ProductListingDetail[]} [items]
683
+ * @typedef GetCollectionListingResponse
684
+ * @property {GetCollectionDetailNest[]} [items]
685
+ * @property {CollectionListingFilter} [filters]
691
686
  * @property {Page} page
692
- * @property {ProductSortOn[]} [sort_on]
693
687
  */
694
688
 
695
689
  /**
696
- * @typedef ProductsComparisonResponse
697
- * @property {AttributeMetadata[]} [attributes_metadata]
698
- * @property {ProductDetail[]} [items]
690
+ * @typedef CollectionDetailResponse
691
+ * @property {boolean} [is_active]
692
+ * @property {string} [sort_on]
693
+ * @property {Object} [meta]
694
+ * @property {ImageUrls} [banners]
695
+ * @property {Object} [cron]
696
+ * @property {Object} [_schedule]
697
+ * @property {CollectionQuery[]} [query]
698
+ * @property {string} [description]
699
+ * @property {string} [type]
700
+ * @property {Object} [_custom_json]
701
+ * @property {string} [name]
702
+ * @property {boolean} [allow_sort]
703
+ * @property {string[]} [visible_facets_keys]
704
+ * @property {Object} [badge]
705
+ * @property {string} [slug]
706
+ * @property {boolean} [allow_facets]
707
+ * @property {Media} [logo]
708
+ * @property {number} [priority]
709
+ * @property {string[]} [tag]
710
+ * @property {string} [app_id]
699
711
  */
700
712
 
701
713
  /**
702
- * @typedef ProductSetDistributionSizeV3
703
- * @property {number} [pieces]
704
- * @property {string} [size]
714
+ * @typedef GetFollowListingResponse
715
+ * @property {ProductListingDetail[]} items
716
+ * @property {Page} page
705
717
  */
706
718
 
707
719
  /**
708
- * @typedef ProductSetDistributionV3
709
- * @property {ProductSetDistributionSizeV3[]} [sizes]
720
+ * @typedef FollowPostResponse
721
+ * @property {string} message
722
+ * @property {string} id
710
723
  */
711
724
 
712
725
  /**
713
- * @typedef ProductSetV3
714
- * @property {number} [quantity]
715
- * @property {ProductSetDistributionV3} [size_distribution]
726
+ * @typedef FollowerCountResponse
727
+ * @property {number} [count]
716
728
  */
717
729
 
718
730
  /**
719
- * @typedef ProductSize
720
- * @property {Dimension} [dimension]
721
- * @property {string} [display]
722
- * @property {boolean} [is_available]
723
- * @property {number} [quantity]
724
- * @property {string[]} [seller_identifiers]
725
- * @property {string} [value]
726
- * @property {Weight} [weight]
731
+ * @typedef FollowIdsData
732
+ * @property {number[]} [products]
733
+ * @property {number[]} [collections]
734
+ * @property {number[]} [brands]
727
735
  */
728
736
 
729
737
  /**
730
- * @typedef ProductSizePriceResponseV3
731
- * @property {ArticleAssignmentV3} [article_assignment]
732
- * @property {string} [article_id]
733
- * @property {PromiseSchema} [delivery_promise]
734
- * @property {string} [discount]
735
- * @property {DiscountMeta} [discount_meta]
736
- * @property {SellerGroupAttributes[]} [grouped_attributes]
737
- * @property {boolean} [is_cod]
738
- * @property {boolean} [is_gift]
739
- * @property {string} [item_type]
740
- * @property {number[]} [long_lat]
741
- * @property {MarketPlaceSttributesSchemaV3[]} [marketplace_attributes]
742
- * @property {number} [pincode]
743
- * @property {ProductStockPriceV3} [price]
744
- * @property {ProductStockPriceV3} [price_per_piece]
745
- * @property {ProductStockUnitPriceV3} [price_per_unit]
746
- * @property {number} [quantity]
747
- * @property {ReturnConfigSchemaV3} [return_config]
748
- * @property {SellerV3} [seller]
749
- * @property {number} [seller_count]
750
- * @property {ProductSetV3} [set]
751
- * @property {string} [special_badge]
752
- * @property {StoreV3} [store]
753
- * @property {StrategyWiseListingSchemaV3[]} [strategy_wise_listing]
738
+ * @typedef FollowIdsResponse
739
+ * @property {FollowIdsData} [data]
754
740
  */
755
741
 
756
742
  /**
757
- * @typedef ProductSizes
758
- * @property {string} [discount]
759
- * @property {DiscountMeta} [discount_meta]
760
- * @property {boolean} [multi_size]
761
- * @property {ProductSizesPrice} [price]
762
- * @property {boolean} [sellable]
763
- * @property {SizeChart} [size_chart]
764
- * @property {ProductSize[]} [sizes]
765
- * @property {ProductSizeStores} [stores]
743
+ * @typedef LatLong
744
+ * @property {number[]} [coordinates]
745
+ * @property {string} [type]
766
746
  */
767
747
 
768
748
  /**
769
- * @typedef ProductSizeSellerFilterSchemaV3
770
- * @property {boolean} [is_selected]
749
+ * @typedef Store
750
+ * @property {number} [uid]
751
+ * @property {string} [store_email]
752
+ * @property {string} [state]
753
+ * @property {string} [country]
754
+ * @property {number} [pincode]
755
+ * @property {string} [city]
756
+ * @property {string} [address]
757
+ * @property {string} [store_code]
758
+ * @property {LatLong} [lat_long]
771
759
  * @property {string} [name]
772
- * @property {string} [value]
760
+ * @property {string[]} [tags]
773
761
  */
774
762
 
775
763
  /**
776
- * @typedef ProductSizeSellersResponseV3
777
- * @property {ProductSizePriceResponseV3[]} [items]
764
+ * @typedef StoreListingResponse
765
+ * @property {Store[]} items
778
766
  * @property {Page} page
779
- * @property {ProductSizeSellerFilterSchemaV3[]} [sort_on]
780
767
  */
781
768
 
782
769
  /**
783
- * @typedef ProductSizesPrice
784
- * @property {Price} [effective]
785
- * @property {Price} [marked]
786
- * @property {Price} [selling]
770
+ * @typedef StoreDepartments
771
+ * @property {number} [uid]
772
+ * @property {Object} [logo]
773
+ * @property {number} [priority_order]
774
+ * @property {string} [name]
775
+ * @property {string} [slug]
787
776
  */
788
777
 
789
778
  /**
790
- * @typedef ProductSizeStores
791
- * @property {number} [count]
779
+ * @typedef CompanyStore
780
+ * @property {number} [uid]
781
+ * @property {string} [name]
782
+ * @property {string} [company_type]
783
+ * @property {string} [business_type]
792
784
  */
793
785
 
794
786
  /**
795
- * @typedef ProductSortOn
796
- * @property {string} [display]
797
- * @property {boolean} [is_selected]
798
- * @property {string} [logo]
799
- * @property {string} [name]
800
- * @property {string} [value]
787
+ * @typedef SellerPhoneNumber
788
+ * @property {number} country_code
789
+ * @property {string} number
801
790
  */
802
791
 
803
792
  /**
804
- * @typedef ProductStockPolling
805
- * @property {ProductStockStatusItem[]} [items]
806
- * @property {Page} page
793
+ * @typedef StoreManagerSerializer
794
+ * @property {string} [name]
795
+ * @property {string} [email]
796
+ * @property {SellerPhoneNumber} [mobile_no]
807
797
  */
808
798
 
809
799
  /**
810
- * @typedef ProductStockPrice
811
- * @property {string} [currency]
812
- * @property {number} [effective]
813
- * @property {number} [marked]
800
+ * @typedef StoreAddressSerializer
801
+ * @property {number} [latitude]
802
+ * @property {string} [state]
803
+ * @property {string} [country]
804
+ * @property {string} [landmark]
805
+ * @property {string} [address1]
806
+ * @property {number} [pincode]
807
+ * @property {string} [city]
808
+ * @property {number} [longitude]
809
+ * @property {string} [address2]
814
810
  */
815
811
 
816
812
  /**
817
- * @typedef ProductStockPriceV3
818
- * @property {string} [currency_code] - The currency code for which the product
819
- * is available
820
- * @property {string} [currency_symbol] - The currency symbol for the currency
821
- * in which the product is available.
822
- * @property {number} [effective] - The effective or final price for the product
823
- * at the given pincode.
824
- * @property {number} [marked] - The marked price of the product.
825
- * @property {number} [selling] - The selling price of the product.
813
+ * @typedef AppStore
814
+ * @property {number} [uid]
815
+ * @property {StoreDepartments[]} [departments]
816
+ * @property {CompanyStore} [company]
817
+ * @property {StoreManagerSerializer} [manager]
818
+ * @property {string} [store_code]
819
+ * @property {StoreAddressSerializer} [address]
820
+ * @property {string} [name]
821
+ * @property {SellerPhoneNumber[]} [contact_numbers]
826
822
  */
827
823
 
828
824
  /**
829
- * @typedef ProductStockStatusItem
830
- * @property {CompanyDetail} [company]
831
- * @property {Object} [identifier]
832
- * @property {number} [item_id]
833
- * @property {ProductStockPrice} [price]
834
- * @property {number} [quantity]
835
- * @property {Seller} [seller]
836
- * @property {string} [size]
837
- * @property {StoreDetail} [store]
838
- * @property {string} [uid]
825
+ * @typedef ApplicationStoreListing
826
+ * @property {Object[]} [filters]
827
+ * @property {AppStore[]} [items]
828
+ * @property {Page} [page]
839
829
  */
840
830
 
841
831
  /**
842
- * @typedef ProductStockStatusResponse
843
- * @property {ProductStockStatusItem[]} [items]
832
+ * @typedef Time
833
+ * @property {number} [hour]
834
+ * @property {number} [minute]
844
835
  */
845
836
 
846
837
  /**
847
- * @typedef ProductStockUnitPriceV3
848
- * @property {string} [currency_code]
849
- * @property {string} [currency_symbol]
850
- * @property {number} [price]
851
- * @property {string} [unit]
838
+ * @typedef StoreTiming
839
+ * @property {boolean} [open]
840
+ * @property {Time} [closing]
841
+ * @property {string} [weekday]
842
+ * @property {Time} [opening]
852
843
  */
853
844
 
854
845
  /**
855
- * @typedef ProductVariantItemResponse
856
- * @property {CustomMetaFields[]} [_custom_meta]
857
- * @property {ProductListingAction} [action]
858
- * @property {string} [color]
859
- * @property {string} [color_name]
860
- * @property {boolean} [is_available]
861
- * @property {Media[]} [medias]
862
- * @property {string} [name]
863
- * @property {string} [slug]
846
+ * @typedef StoreDetails
864
847
  * @property {number} [uid]
865
- * @property {string} [value]
848
+ * @property {StoreDepartments[]} [departments]
849
+ * @property {CompanyStore} [company]
850
+ * @property {StoreManagerSerializer} [manager]
851
+ * @property {string} [store_code]
852
+ * @property {StoreTiming[]} [timing]
853
+ * @property {StoreAddressSerializer} [address]
854
+ * @property {Object} [_custom_json]
855
+ * @property {string} [name]
856
+ * @property {SellerPhoneNumber[]} [contact_numbers]
866
857
  */
867
858
 
868
859
  /**
869
- * @typedef ProductVariantListingResponse
870
- * @property {string} [display_type]
871
- * @property {string} [header]
872
- * @property {ProductVariantItemResponse[]} [items]
873
- * @property {string} [key]
874
- * @property {number} [total]
860
+ * @typedef UserDetail
861
+ * @property {boolean} [super_user] - A flag indicating whether the user is a super user.
862
+ * @property {string} [contact] - The contact details of the user.
863
+ * @property {string} username - The username of the user.
864
+ * @property {string} user_id - The user ID of the user.
875
865
  */
876
866
 
877
867
  /**
878
- * @typedef ProductVariantResponse
879
- * @property {string} [display_type]
880
- * @property {string} [header]
881
- * @property {ProductVariantItemResponse[]} [items]
882
- * @property {string} [key]
868
+ * @typedef Size
869
+ * @property {number} [quantity] - The quantity of this size available
870
+ * @property {Object} [value] - The value of the size
871
+ * @property {Object} [display] - The display string for the size
872
+ * @property {boolean} [is_available] - Whether or not this size is available
883
873
  */
884
874
 
885
875
  /**
886
- * @typedef ProductVariantsResponse
887
- * @property {ProductVariantResponse[]} [variants]
876
+ * @typedef ProductGroupPrice
877
+ * @property {number} [max_effective] - The maximum effective price of the product group.
878
+ * @property {number} [min_effective] - The minimum effective price of the product group.
879
+ * @property {number} [min_marked] - The minimum marked price of the product group.
880
+ * @property {Object} [currency] - The currency code for the prices.
881
+ * @property {number} [max_marked] - The maximum marked price of the product group.
888
882
  */
889
883
 
890
884
  /**
891
- * @typedef PromiseSchema
892
- * @property {string} [max]
893
- * @property {string} [min]
885
+ * @typedef ProductDetails
886
+ * @property {Object} [template_tag] - The template tag of the product
887
+ * @property {number} [rating_count] - The number of ratings the product has received
888
+ * @property {Object} [image_nature] - The nature of the product's images
889
+ * @property {boolean} [has_variant] - Whether or not the product has a variant
890
+ * @property {Object} [description] - The long description of the product
891
+ * @property {boolean} [out_of_stock] - Whether or not the product is out of stock
892
+ * @property {number} [hsn_code] - The HSN code of the product
893
+ * @property {Object} [grouped_attributes] - A dictionary of grouped product attributes
894
+ * @property {Object} [item_code] - The item code of the product
895
+ * @property {Object} [name] - The name of the product
896
+ * @property {Object} [country_of_origin] - The country of origin for the product
897
+ * @property {Object} [short_description] - The short description of the product
898
+ * @property {Object[]} [media] - A list of media objects for the product
899
+ * @property {Object} [attributes] - A dictionary of product attributes
900
+ * @property {boolean} [is_set] - Whether or not the product is a set of items
901
+ * @property {Object[]} [images] - A list of image URLs for the product
902
+ * @property {Object} [slug] - The slug of the product
903
+ * @property {number} [rating] - The rating of the product
904
+ * @property {Object} [identifier] - A dictionary of product identifiers
905
+ * @property {Object[]} [highlights] - A list of highlights for the product
906
+ * @property {number} [brand_uid] - The unique ID of the product's brand
894
907
  */
895
908
 
896
909
  /**
897
- * @typedef ReturnConfigSchemaV3
898
- * @property {boolean} [returnable]
899
- * @property {number} [time]
900
- * @property {string} [unit]
910
+ * @typedef ProductInGroup
911
+ * @property {boolean} [auto_add_to_cart] - A flag indicating whether the
912
+ * product should be automatically added to the cart.
913
+ * @property {number} max_quantity - The maximum quantity of the product that
914
+ * can be added to the cart.
915
+ * @property {Size[]} [sizes] - The available sizes for the product.
916
+ * @property {ProductGroupPrice} [price] - The price details for the product group.
917
+ * @property {boolean} [auto_select] - A flag indicating whether the product
918
+ * should be automatically selected.
919
+ * @property {ProductDetails} [product_details] - The details of the product.
920
+ * @property {number} [min_quantity] - The minimum quantity of the product that
921
+ * can be added to the cart.
922
+ * @property {boolean} [allow_remove] - A flag indicating whether the product
923
+ * can be removed from the cart.
924
+ * @property {number} product_uid - The unique ID of the product in the group.
901
925
  */
902
926
 
903
927
  /**
904
- * @typedef SecondLevelChild
905
- * @property {Object} [_custom_json]
906
- * @property {ProductListingAction} [action]
907
- * @property {ImageUrls} [banners]
908
- * @property {ThirdLevelChild[]} [childs]
909
- * @property {string} [name]
910
- * @property {string} [slug]
911
- * @property {number} [uid]
928
+ * @typedef ProductGroupingModel
929
+ * @property {string} [logo] - The URL for the logo of the product grouping.
930
+ * @property {boolean} [is_active] - Whether the product grouping is active.
931
+ * @property {Object} [meta] - A dictionary containing metadata information.
932
+ * @property {UserDetail} [verified_by] - User details of the verifier of the
933
+ * document, if applicable
934
+ * @property {string} created_on - Timestamp of the creation of the document
935
+ * @property {number} [company_id] - The ID of the company that owns the product grouping.
936
+ * @property {Object[]} [page_visibility] - A list of page visibilities of the
937
+ * product grouping.
938
+ * @property {string} modified_on - Timestamp of the last modification of the document
939
+ * @property {UserDetail} [created_by] - User details of the creator of the document
940
+ * @property {UserDetail} [modified_by] - User details of the last modifier of
941
+ * the document
942
+ * @property {ProductInGroup[]} products - A list of products in the grouping.
943
+ * @property {boolean} [same_store_assignment] - Whether the products are
944
+ * assigned to the same store.
945
+ * @property {Object} [_id]
946
+ * @property {Object} name - The name of the product grouping.
947
+ * @property {Object} [choice] - The choice of the product grouping.
948
+ * @property {Object} [slug] - The unique identifier for the product grouping.
949
+ * @property {string} [verified_on] - Timestamp of when the document was
950
+ * verified, if applicable
912
951
  */
913
952
 
914
953
  /**
915
- * @typedef Seller
916
- * @property {number} [count]
917
- * @property {string} [name]
918
- * @property {number} [uid]
954
+ * @typedef ProductBundle
955
+ * @property {ProductGroupingModel[]} [items]
919
956
  */
920
957
 
921
958
  /**
922
- * @typedef SellerGroupAttributes
923
- * @property {DetailsSchemaV3[]} [details]
924
- * @property {string} [title]
959
+ * @typedef StoreV3
960
+ * @property {number} [uid]
961
+ * @property {string} [name]
962
+ * @property {number} [count]
925
963
  */
926
964
 
927
965
  /**
928
- * @typedef SellerPhoneNumber
929
- * @property {number} country_code
930
- * @property {string} number
966
+ * @typedef ArticleAssignmentV3
967
+ * @property {string} [strategy]
968
+ * @property {string} [level]
931
969
  */
932
970
 
933
971
  /**
934
- * @typedef SellerV3
935
- * @property {number} [count]
936
- * @property {string} [name]
937
- * @property {number} [uid]
972
+ * @typedef StrategyWiseListingSchemaV3
973
+ * @property {number} [distance]
974
+ * @property {number} [pincode]
975
+ * @property {number} [tat]
976
+ * @property {number} [quantity]
938
977
  */
939
978
 
940
979
  /**
941
- * @typedef Size
942
- * @property {Object} [display] - The display string for the size
943
- * @property {boolean} [is_available] - Whether or not this size is available
944
- * @property {number} [quantity] - The quantity of this size available
945
- * @property {Object} [value] - The value of the size
980
+ * @typedef DetailsSchemaV3
981
+ * @property {string} [value]
982
+ * @property {string} [type]
983
+ * @property {string} [key]
946
984
  */
947
985
 
948
986
  /**
949
- * @typedef SizeChart
950
- * @property {string} [description]
951
- * @property {ColumnHeaders} [headers]
952
- * @property {string} [image]
953
- * @property {string} [size_tip]
954
- * @property {SizeChartValues[]} [sizes]
987
+ * @typedef SellerGroupAttributes
955
988
  * @property {string} [title]
956
- * @property {string} [unit]
989
+ * @property {DetailsSchemaV3[]} [details]
957
990
  */
958
991
 
959
992
  /**
960
- * @typedef SizeChartValues
961
- * @property {string} [col_1]
962
- * @property {string} [col_2]
963
- * @property {string} [col_3]
964
- * @property {string} [col_4]
965
- * @property {string} [col_5]
966
- * @property {string} [col_6]
993
+ * @typedef ReturnConfigSchemaV3
994
+ * @property {string} [unit]
995
+ * @property {boolean} [returnable]
996
+ * @property {number} [time]
967
997
  */
968
998
 
969
999
  /**
970
- * @typedef Store
971
- * @property {string} [address]
972
- * @property {string} [city]
973
- * @property {string} [country]
974
- * @property {LatLong} [lat_long]
975
- * @property {string} [name]
976
- * @property {number} [pincode]
977
- * @property {string} [state]
978
- * @property {string} [store_code]
979
- * @property {string} [store_email]
980
- * @property {string[]} [tags]
981
- * @property {number} [uid]
1000
+ * @typedef ProductSetDistributionSizeV3
1001
+ * @property {number} [pieces]
1002
+ * @property {string} [size]
982
1003
  */
983
1004
 
984
1005
  /**
985
- * @typedef StoreAddressSerializer
986
- * @property {string} [address1]
987
- * @property {string} [address2]
988
- * @property {string} [city]
989
- * @property {string} [country]
990
- * @property {string} [landmark]
991
- * @property {number} [latitude]
992
- * @property {number} [longitude]
993
- * @property {number} [pincode]
994
- * @property {string} [state]
1006
+ * @typedef ProductSetDistributionV3
1007
+ * @property {ProductSetDistributionSizeV3[]} [sizes]
995
1008
  */
996
1009
 
997
1010
  /**
998
- * @typedef StoreDepartments
999
- * @property {Object} [logo]
1000
- * @property {string} [name]
1001
- * @property {number} [priority_order]
1002
- * @property {string} [slug]
1003
- * @property {number} [uid]
1011
+ * @typedef ProductSetV3
1012
+ * @property {number} [quantity]
1013
+ * @property {ProductSetDistributionV3} [size_distribution]
1004
1014
  */
1005
1015
 
1006
1016
  /**
1007
- * @typedef StoreDetail
1008
- * @property {string} [city]
1009
- * @property {string} [code]
1010
- * @property {number} [id]
1011
- * @property {string} [name]
1017
+ * @typedef ProductStockPriceV3
1018
+ * @property {number} [effective] - The effective or final price for the product
1019
+ * at the given pincode.
1020
+ * @property {string} [currency_code] - The currency code for which the product
1021
+ * is available
1022
+ * @property {string} [currency_symbol] - The currency symbol for the currency
1023
+ * in which the product is available.
1024
+ * @property {number} [marked] - The marked price of the product.
1025
+ * @property {number} [selling] - The selling price of the product.
1012
1026
  */
1013
1027
 
1014
1028
  /**
1015
- * @typedef StoreDetails
1016
- * @property {Object} [_custom_json]
1017
- * @property {StoreAddressSerializer} [address]
1018
- * @property {CompanyStore} [company]
1019
- * @property {SellerPhoneNumber[]} [contact_numbers]
1020
- * @property {StoreDepartments[]} [departments]
1021
- * @property {StoreManagerSerializer} [manager]
1022
- * @property {string} [name]
1023
- * @property {string} [store_code]
1024
- * @property {StoreTiming[]} [timing]
1025
- * @property {number} [uid]
1029
+ * @typedef ProductStockUnitPriceV3
1030
+ * @property {string} [unit]
1031
+ * @property {string} [currency_symbol]
1032
+ * @property {string} [currency_code]
1033
+ * @property {number} [price]
1026
1034
  */
1027
1035
 
1028
1036
  /**
1029
- * @typedef StoreListingResponse
1030
- * @property {Store[]} items
1031
- * @property {Page} page
1037
+ * @typedef MarketPlaceSttributesSchemaV3
1038
+ * @property {string} [title]
1039
+ * @property {DetailsSchemaV3[]} [details]
1032
1040
  */
1033
1041
 
1034
1042
  /**
1035
- * @typedef StoreManagerSerializer
1036
- * @property {string} [email]
1037
- * @property {SellerPhoneNumber} [mobile_no]
1043
+ * @typedef SellerV3
1044
+ * @property {number} [uid]
1038
1045
  * @property {string} [name]
1046
+ * @property {number} [count]
1039
1047
  */
1040
1048
 
1041
1049
  /**
1042
- * @typedef StoreTiming
1043
- * @property {Time} [closing]
1044
- * @property {boolean} [open]
1045
- * @property {Time} [opening]
1046
- * @property {string} [weekday]
1047
- */
1048
-
1049
- /**
1050
- * @typedef StoreV3
1051
- * @property {number} [count]
1052
- * @property {string} [name]
1053
- * @property {number} [uid]
1050
+ * @typedef PromiseSchema
1051
+ * @property {string} [min]
1052
+ * @property {string} [max]
1054
1053
  */
1055
1054
 
1056
1055
  /**
1057
- * @typedef StrategyWiseListingSchemaV3
1058
- * @property {number} [distance]
1056
+ * @typedef ProductSizePriceResponseV3
1057
+ * @property {StoreV3} [store]
1058
+ * @property {ArticleAssignmentV3} [article_assignment]
1059
+ * @property {boolean} [is_cod]
1060
+ * @property {StrategyWiseListingSchemaV3[]} [strategy_wise_listing]
1061
+ * @property {number} [quantity]
1062
+ * @property {string} [item_type]
1063
+ * @property {SellerGroupAttributes[]} [grouped_attributes]
1064
+ * @property {ReturnConfigSchemaV3} [return_config]
1065
+ * @property {string} [article_id]
1066
+ * @property {boolean} [is_gift]
1067
+ * @property {ProductSetV3} [set]
1068
+ * @property {number} [seller_count]
1069
+ * @property {ProductStockPriceV3} [price_per_piece]
1070
+ * @property {DiscountMeta} [discount_meta]
1071
+ * @property {string} [discount]
1072
+ * @property {number[]} [long_lat]
1073
+ * @property {string} [special_badge]
1074
+ * @property {ProductStockPriceV3} [price]
1075
+ * @property {ProductStockUnitPriceV3} [price_per_unit]
1059
1076
  * @property {number} [pincode]
1060
- * @property {number} [quantity]
1061
- * @property {number} [tat]
1077
+ * @property {MarketPlaceSttributesSchemaV3[]} [marketplace_attributes]
1078
+ * @property {SellerV3} [seller]
1079
+ * @property {PromiseSchema} [delivery_promise]
1062
1080
  */
1063
1081
 
1064
1082
  /**
1065
- * @typedef ThirdLevelChild
1066
- * @property {Object} [_custom_json]
1067
- * @property {ProductListingAction} [action]
1068
- * @property {ImageUrls} [banners]
1069
- * @property {Object[]} [childs]
1083
+ * @typedef ProductSizeSellerFilterSchemaV3
1070
1084
  * @property {string} [name]
1071
- * @property {string} [slug]
1072
- * @property {number} [uid]
1085
+ * @property {boolean} [is_selected]
1086
+ * @property {string} [value]
1073
1087
  */
1074
1088
 
1075
1089
  /**
1076
- * @typedef Time
1077
- * @property {number} [hour]
1078
- * @property {number} [minute]
1090
+ * @typedef ProductSizeSellersResponseV3
1091
+ * @property {ProductSizePriceResponseV3[]} [items]
1092
+ * @property {Page} page
1093
+ * @property {ProductSizeSellerFilterSchemaV3[]} [sort_on]
1079
1094
  */
1080
1095
 
1081
- /**
1082
- * @typedef UserDetail
1083
- * @property {string} [contact] - The contact details of the user.
1084
- * @property {boolean} [super_user] - A flag indicating whether the user is a super user.
1085
- * @property {string} user_id - The user ID of the user.
1086
- * @property {string} username - The username of the user.
1087
- */
1096
+ class CatalogApplicationModel {
1097
+ /** @returns {ProductDetailCustomOrder} */
1098
+ static ProductDetailCustomOrder() {
1099
+ return Joi.object({
1100
+ manufacturing_time: Joi.number(),
1101
+ manufacturing_time_unit: Joi.string().allow(""),
1102
+ is_custom_order: Joi.boolean(),
1103
+ });
1104
+ }
1088
1105
 
1089
- /**
1090
- * @typedef Weight
1091
- * @property {boolean} is_default - Whether the weight is the default one or not
1092
- * @property {number} shipping - The shipping weight of the product
1093
- * @property {string} unit - The unit of weight
1094
- */
1106
+ /** @returns {Meta} */
1107
+ static Meta() {
1108
+ return Joi.object({
1109
+ source: Joi.string().allow(""),
1110
+ });
1111
+ }
1095
1112
 
1096
- class CatalogApplicationModel {
1097
- /** @returns {ApplicationItemMOQ} */
1098
- static ApplicationItemMOQ() {
1113
+ /** @returns {Media} */
1114
+ static Media() {
1099
1115
  return Joi.object({
1100
- increment_unit: Joi.number(),
1101
- maximum: Joi.number(),
1102
- minimum: Joi.number(),
1116
+ url: Joi.string().allow(""),
1117
+ type: Joi.string().allow(""),
1118
+ meta: CatalogApplicationModel.Meta(),
1119
+ alt: Joi.string().allow(""),
1103
1120
  });
1104
1121
  }
1105
1122
 
1106
- /** @returns {ApplicationItemSEO} */
1107
- static ApplicationItemSEO() {
1123
+ /** @returns {ProductListingActionPage} */
1124
+ static ProductListingActionPage() {
1108
1125
  return Joi.object({
1109
- description: Joi.any(),
1110
- title: Joi.any(),
1126
+ type: Joi.string().allow(""),
1127
+ query: Joi.any(),
1128
+ params: Joi.any(),
1111
1129
  });
1112
1130
  }
1113
1131
 
1114
- /** @returns {ApplicationStoreListing} */
1115
- static ApplicationStoreListing() {
1132
+ /** @returns {ProductListingAction} */
1133
+ static ProductListingAction() {
1116
1134
  return Joi.object({
1117
- filters: Joi.array().items(Joi.any()),
1118
- items: Joi.array().items(CatalogApplicationModel.AppStore()),
1119
- page: CatalogApplicationModel.Page(),
1135
+ type: Joi.string().allow(""),
1136
+ page: CatalogApplicationModel.ProductListingActionPage(),
1120
1137
  });
1121
1138
  }
1122
1139
 
1123
- /** @returns {AppStore} */
1124
- static AppStore() {
1140
+ /** @returns {ProductBrand} */
1141
+ static ProductBrand() {
1125
1142
  return Joi.object({
1126
- address: CatalogApplicationModel.StoreAddressSerializer(),
1127
- company: CatalogApplicationModel.CompanyStore(),
1128
- contact_numbers: Joi.array().items(
1129
- CatalogApplicationModel.SellerPhoneNumber()
1130
- ),
1131
- departments: Joi.array().items(
1132
- CatalogApplicationModel.StoreDepartments()
1133
- ),
1134
- manager: CatalogApplicationModel.StoreManagerSerializer(),
1135
- name: Joi.string().allow(""),
1136
- store_code: Joi.string().allow(""),
1137
1143
  uid: Joi.number(),
1144
+ logo: CatalogApplicationModel.Media(),
1145
+ description: Joi.string().allow(""),
1146
+ name: Joi.string().allow(""),
1147
+ action: CatalogApplicationModel.ProductListingAction(),
1138
1148
  });
1139
1149
  }
1140
1150
 
1141
- /** @returns {ArticleAssignmentV3} */
1142
- static ArticleAssignmentV3() {
1151
+ /** @returns {ProductDepartment} */
1152
+ static ProductDepartment() {
1143
1153
  return Joi.object({
1144
- level: Joi.string().allow(""),
1145
- strategy: Joi.string().allow(""),
1154
+ uid: Joi.number(),
1155
+ logo: CatalogApplicationModel.Media(),
1156
+ slug: Joi.string().allow(""),
1157
+ name: Joi.string().allow(""),
1146
1158
  });
1147
1159
  }
1148
1160
 
1149
- /** @returns {AttributeDetail} */
1150
- static AttributeDetail() {
1161
+ /** @returns {ProductCategoryMap} */
1162
+ static ProductCategoryMap() {
1151
1163
  return Joi.object({
1152
- description: Joi.string().allow(""),
1153
- display: Joi.string().allow(""),
1154
- key: Joi.string().allow(""),
1155
- logo: Joi.string().allow(""),
1164
+ l1: CatalogApplicationModel.ProductBrand(),
1165
+ l2: CatalogApplicationModel.ProductBrand(),
1166
+ l3: CatalogApplicationModel.ProductBrand(),
1156
1167
  });
1157
1168
  }
1158
1169
 
1159
- /** @returns {AttributeMetadata} */
1160
- static AttributeMetadata() {
1170
+ /** @returns {NetQuantity} */
1171
+ static NetQuantity() {
1161
1172
  return Joi.object({
1162
- details: Joi.array().items(CatalogApplicationModel.AttributeDetail()),
1163
- title: Joi.string().allow(""),
1173
+ unit: Joi.any(),
1174
+ value: Joi.number(),
1164
1175
  });
1165
1176
  }
1166
1177
 
1167
- /** @returns {AutocompleteItem} */
1168
- static AutocompleteItem() {
1178
+ /** @returns {CustomMetaFields} */
1179
+ static CustomMetaFields() {
1169
1180
  return Joi.object({
1170
- _custom_json: Joi.any(),
1171
- action: CatalogApplicationModel.ProductListingAction(),
1172
- display: Joi.string().allow(""),
1173
- logo: CatalogApplicationModel.Media(),
1174
- type: Joi.string().allow(""),
1181
+ value: Joi.string().allow("").required(),
1182
+ key: Joi.string().allow("").required(),
1175
1183
  });
1176
1184
  }
1177
1185
 
1178
- /** @returns {AutoCompleteResponse} */
1179
- static AutoCompleteResponse() {
1186
+ /** @returns {ApplicationItemSEO} */
1187
+ static ApplicationItemSEO() {
1180
1188
  return Joi.object({
1181
- items: Joi.array().items(CatalogApplicationModel.AutocompleteItem()),
1189
+ title: Joi.any(),
1190
+ description: Joi.any(),
1182
1191
  });
1183
1192
  }
1184
1193
 
1185
- /** @returns {BrandDetailResponse} */
1186
- static BrandDetailResponse() {
1194
+ /** @returns {ProductDetailAttribute} */
1195
+ static ProductDetailAttribute() {
1187
1196
  return Joi.object({
1188
- _custom_json: Joi.any(),
1189
- banners: CatalogApplicationModel.ImageUrls(),
1190
- description: Joi.string().allow(""),
1191
- logo: CatalogApplicationModel.Media(),
1192
- name: Joi.string().allow(""),
1193
- uid: Joi.number(),
1197
+ value: Joi.string().allow(""),
1198
+ type: Joi.string().allow(""),
1199
+ key: Joi.string().allow(""),
1194
1200
  });
1195
1201
  }
1196
1202
 
1197
- /** @returns {BrandItem} */
1198
- static BrandItem() {
1203
+ /** @returns {ProductDetailGroupedAttribute} */
1204
+ static ProductDetailGroupedAttribute() {
1199
1205
  return Joi.object({
1200
- action: CatalogApplicationModel.ProductListingAction(),
1201
- banners: CatalogApplicationModel.ImageUrls(),
1202
- departments: Joi.array().items(Joi.string().allow("")),
1203
- description: Joi.string().allow(""),
1204
- discount: Joi.string().allow(""),
1205
- logo: CatalogApplicationModel.Media(),
1206
- name: Joi.string().allow(""),
1207
- slug: Joi.string().allow(""),
1208
- uid: Joi.number(),
1206
+ title: Joi.string().allow(""),
1207
+ details: Joi.array().items(
1208
+ CatalogApplicationModel.ProductDetailAttribute()
1209
+ ),
1209
1210
  });
1210
1211
  }
1211
1212
 
1212
- /** @returns {BrandListingResponse} */
1213
- static BrandListingResponse() {
1213
+ /** @returns {ApplicationItemMOQ} */
1214
+ static ApplicationItemMOQ() {
1214
1215
  return Joi.object({
1215
- items: Joi.array().items(CatalogApplicationModel.BrandItem()),
1216
- page: CatalogApplicationModel.Page().required(),
1216
+ minimum: Joi.number(),
1217
+ maximum: Joi.number(),
1218
+ increment_unit: Joi.number(),
1217
1219
  });
1218
1220
  }
1219
1221
 
1220
- /** @returns {CategoryBanner} */
1221
- static CategoryBanner() {
1222
+ /** @returns {Price} */
1223
+ static Price() {
1222
1224
  return Joi.object({
1223
- landscape: CatalogApplicationModel.Media().required(),
1224
- portrait: CatalogApplicationModel.Media().required(),
1225
+ min: Joi.number(),
1226
+ currency_symbol: Joi.string().allow(""),
1227
+ currency_code: Joi.string().allow(""),
1228
+ max: Joi.number(),
1225
1229
  });
1226
1230
  }
1227
1231
 
1228
- /** @returns {CategoryItems} */
1229
- static CategoryItems() {
1232
+ /** @returns {ProductListingPrice} */
1233
+ static ProductListingPrice() {
1230
1234
  return Joi.object({
1231
- action: CatalogApplicationModel.ProductListingAction().required(),
1232
- banners: CatalogApplicationModel.CategoryBanner().required(),
1233
- childs: Joi.array().items(CatalogApplicationModel.Child()),
1234
- name: Joi.string().allow("").required(),
1235
- slug: Joi.string().allow("").required(),
1236
- uid: Joi.number().required(),
1235
+ effective: CatalogApplicationModel.Price(),
1236
+ marked: CatalogApplicationModel.Price(),
1237
1237
  });
1238
1238
  }
1239
1239
 
1240
- /** @returns {CategoryListingResponse} */
1241
- static CategoryListingResponse() {
1240
+ /** @returns {ProductSizesPrice} */
1241
+ static ProductSizesPrice() {
1242
1242
  return Joi.object({
1243
- data: Joi.array().items(CatalogApplicationModel.DepartmentCategoryTree()),
1244
- departments: Joi.array().items(
1245
- CatalogApplicationModel.DepartmentIdentifier()
1246
- ),
1243
+ effective: CatalogApplicationModel.Price(),
1244
+ marked: CatalogApplicationModel.Price(),
1245
+ selling: CatalogApplicationModel.Price(),
1247
1246
  });
1248
1247
  }
1249
1248
 
1250
- /** @returns {CategoryMetaResponse} */
1251
- static CategoryMetaResponse() {
1249
+ /** @returns {ProductDetail} */
1250
+ static ProductDetail() {
1252
1251
  return Joi.object({
1252
+ uid: Joi.number(),
1253
+ custom_order: CatalogApplicationModel.ProductDetailCustomOrder(),
1254
+ category_map: CatalogApplicationModel.ProductCategoryMap(),
1255
+ net_quantity: CatalogApplicationModel.NetQuantity(),
1256
+ rating_count: Joi.number(),
1257
+ _custom_meta: Joi.array().items(
1258
+ CatalogApplicationModel.CustomMetaFields()
1259
+ ),
1260
+ similars: Joi.array().items(Joi.string().allow("")),
1261
+ tags: Joi.array().items(Joi.string().allow("")),
1262
+ seo: CatalogApplicationModel.ApplicationItemSEO(),
1263
+ image_nature: Joi.string().allow(""),
1264
+ has_variant: Joi.boolean(),
1265
+ item_type: Joi.string().allow(""),
1266
+ description: Joi.string().allow(""),
1267
+ grouped_attributes: Joi.array().items(
1268
+ CatalogApplicationModel.ProductDetailGroupedAttribute()
1269
+ ),
1270
+ medias: Joi.array().items(CatalogApplicationModel.Media()),
1271
+ color: Joi.string().allow(""),
1272
+ type: Joi.string().allow(""),
1273
+ product_online_date: Joi.string().allow(""),
1253
1274
  _custom_json: Joi.any(),
1254
- banners: CatalogApplicationModel.ImageUrls(),
1255
- logo: CatalogApplicationModel.Media(),
1275
+ item_code: Joi.string().allow(""),
1256
1276
  name: Joi.string().allow(""),
1257
- uid: Joi.number(),
1277
+ moq: CatalogApplicationModel.ApplicationItemMOQ(),
1278
+ short_description: Joi.string().allow(""),
1279
+ categories: Joi.array().items(CatalogApplicationModel.ProductBrand()),
1280
+ attributes: Joi.any(),
1281
+ discount: Joi.string().allow(""),
1282
+ tryouts: Joi.array().items(Joi.string().allow("")),
1283
+ slug: Joi.string().allow("").required(),
1284
+ action: CatalogApplicationModel.ProductListingAction(),
1285
+ rating: Joi.number(),
1286
+ is_dependent: Joi.boolean(),
1287
+ product_group_tag: Joi.array().items(Joi.string().allow("")),
1288
+ highlights: Joi.array().items(Joi.string().allow("")),
1289
+ price: CatalogApplicationModel.ProductListingPrice(),
1290
+ brand: CatalogApplicationModel.ProductBrand(),
1291
+ department: CatalogApplicationModel.ProductDepartment(),
1292
+ teaser_tag: Joi.string().allow(""),
1258
1293
  });
1259
1294
  }
1260
1295
 
1261
- /** @returns {Child} */
1262
- static Child() {
1296
+ /** @returns {ErrorResponse} */
1297
+ static ErrorResponse() {
1263
1298
  return Joi.object({
1264
- _custom_json: Joi.any(),
1265
- action: CatalogApplicationModel.ProductListingAction(),
1266
- banners: CatalogApplicationModel.ImageUrls(),
1267
- childs: Joi.array().items(CatalogApplicationModel.SecondLevelChild()),
1268
- name: Joi.string().allow(""),
1269
- slug: Joi.string().allow(""),
1270
- uid: Joi.number(),
1299
+ error: Joi.string().allow(""),
1271
1300
  });
1272
1301
  }
1273
1302
 
1274
- /** @returns {CollectionDetailResponse} */
1275
- static CollectionDetailResponse() {
1303
+ /** @returns {Dimension} */
1304
+ static Dimension() {
1276
1305
  return Joi.object({
1277
- _custom_json: Joi.any(),
1278
- _schedule: Joi.any(),
1279
- allow_facets: Joi.boolean(),
1280
- allow_sort: Joi.boolean(),
1281
- app_id: Joi.string().allow(""),
1282
- badge: Joi.any(),
1283
- banners: CatalogApplicationModel.ImageUrls(),
1284
- cron: Joi.any(),
1285
- description: Joi.string().allow(""),
1286
- is_active: Joi.boolean(),
1287
- logo: CatalogApplicationModel.Media(),
1288
- meta: Joi.any(),
1289
- name: Joi.string().allow(""),
1290
- priority: Joi.number(),
1291
- query: Joi.array().items(CatalogApplicationModel.CollectionQuery()),
1292
- slug: Joi.string().allow(""),
1293
- sort_on: Joi.string().allow(""),
1294
- tag: Joi.array().items(Joi.string().allow("")),
1295
- type: Joi.string().allow(""),
1296
- visible_facets_keys: Joi.array().items(Joi.string().allow("")),
1306
+ unit: Joi.string().allow("").required(),
1307
+ height: Joi.number().required(),
1308
+ length: Joi.number().required(),
1309
+ width: Joi.number().required(),
1310
+ is_default: Joi.boolean().required(),
1297
1311
  });
1298
1312
  }
1299
1313
 
1300
- /** @returns {CollectionListingFilter} */
1301
- static CollectionListingFilter() {
1314
+ /** @returns {Weight} */
1315
+ static Weight() {
1302
1316
  return Joi.object({
1303
- tags: Joi.array().items(
1304
- CatalogApplicationModel.CollectionListingFilterTag()
1305
- ),
1306
- type: Joi.array().items(
1307
- CatalogApplicationModel.CollectionListingFilterType()
1308
- ),
1317
+ unit: Joi.string().allow("").required(),
1318
+ shipping: Joi.number().required(),
1319
+ is_default: Joi.boolean().required(),
1309
1320
  });
1310
1321
  }
1311
1322
 
1312
- /** @returns {CollectionListingFilterTag} */
1313
- static CollectionListingFilterTag() {
1323
+ /** @returns {DiscountMeta} */
1324
+ static DiscountMeta() {
1314
1325
  return Joi.object({
1315
- display: Joi.string().allow(""),
1316
- is_selected: Joi.boolean(),
1317
- name: Joi.string().allow(""),
1326
+ timer: Joi.boolean().required(),
1327
+ start_timer_in_minutes: Joi.number(),
1328
+ start: Joi.string().allow(""),
1329
+ end: Joi.string().allow(""),
1318
1330
  });
1319
1331
  }
1320
1332
 
1321
- /** @returns {CollectionListingFilterType} */
1322
- static CollectionListingFilterType() {
1333
+ /** @returns {ProductSize} */
1334
+ static ProductSize() {
1323
1335
  return Joi.object({
1336
+ quantity: Joi.number(),
1337
+ dimension: CatalogApplicationModel.Dimension(),
1338
+ weight: CatalogApplicationModel.Weight(),
1339
+ is_available: Joi.boolean(),
1340
+ seller_identifiers: Joi.array().items(Joi.string().allow("")),
1341
+ value: Joi.string().allow(""),
1324
1342
  display: Joi.string().allow(""),
1325
- is_selected: Joi.boolean(),
1326
- name: Joi.string().allow(""),
1327
1343
  });
1328
1344
  }
1329
1345
 
1330
- /** @returns {CollectionQuery} */
1331
- static CollectionQuery() {
1346
+ /** @returns {SizeChartValues} */
1347
+ static SizeChartValues() {
1332
1348
  return Joi.object({
1333
- attribute: Joi.string().allow("").required(),
1334
- op: Joi.string().allow("").required(),
1335
- value: Joi.array().items(Joi.any()).required(),
1349
+ col_3: Joi.string().allow(""),
1350
+ col_6: Joi.string().allow(""),
1351
+ col_2: Joi.string().allow(""),
1352
+ col_4: Joi.string().allow(""),
1353
+ col_1: Joi.string().allow(""),
1354
+ col_5: Joi.string().allow(""),
1336
1355
  });
1337
1356
  }
1338
1357
 
@@ -1347,1124 +1366,1105 @@ class CatalogApplicationModel {
1347
1366
  /** @returns {ColumnHeaders} */
1348
1367
  static ColumnHeaders() {
1349
1368
  return Joi.object({
1350
- col_1: CatalogApplicationModel.ColumnHeader(),
1351
- col_2: CatalogApplicationModel.ColumnHeader(),
1352
1369
  col_3: CatalogApplicationModel.ColumnHeader(),
1370
+ col_6: CatalogApplicationModel.ColumnHeader(),
1371
+ col_2: CatalogApplicationModel.ColumnHeader(),
1353
1372
  col_4: CatalogApplicationModel.ColumnHeader(),
1373
+ col_1: CatalogApplicationModel.ColumnHeader(),
1354
1374
  col_5: CatalogApplicationModel.ColumnHeader(),
1355
- col_6: CatalogApplicationModel.ColumnHeader(),
1356
1375
  });
1357
1376
  }
1358
1377
 
1359
- /** @returns {CompanyDetail} */
1360
- static CompanyDetail() {
1378
+ /** @returns {SizeChart} */
1379
+ static SizeChart() {
1361
1380
  return Joi.object({
1362
- id: Joi.number(),
1363
- name: Joi.string().allow(""),
1381
+ unit: Joi.string().allow(""),
1382
+ image: Joi.string().allow(""),
1383
+ size_tip: Joi.string().allow(""),
1384
+ sizes: Joi.array().items(CatalogApplicationModel.SizeChartValues()),
1385
+ description: Joi.string().allow(""),
1386
+ title: Joi.string().allow(""),
1387
+ headers: CatalogApplicationModel.ColumnHeaders(),
1364
1388
  });
1365
1389
  }
1366
1390
 
1367
- /** @returns {CompanyStore} */
1368
- static CompanyStore() {
1391
+ /** @returns {ProductSizeStores} */
1392
+ static ProductSizeStores() {
1369
1393
  return Joi.object({
1370
- business_type: Joi.string().allow(""),
1371
- company_type: Joi.string().allow(""),
1372
- name: Joi.string().allow(""),
1373
- uid: Joi.number(),
1394
+ count: Joi.number(),
1374
1395
  });
1375
1396
  }
1376
1397
 
1377
- /** @returns {CustomMetaFields} */
1378
- static CustomMetaFields() {
1398
+ /** @returns {ProductSizes} */
1399
+ static ProductSizes() {
1379
1400
  return Joi.object({
1380
- key: Joi.string().allow("").required(),
1381
- value: Joi.string().allow("").required(),
1401
+ sizes: Joi.array().items(CatalogApplicationModel.ProductSize()),
1402
+ price: CatalogApplicationModel.ProductSizesPrice(),
1403
+ size_chart: CatalogApplicationModel.SizeChart(),
1404
+ sellable: Joi.boolean(),
1405
+ multi_size: Joi.boolean(),
1406
+ discount: Joi.string().allow(""),
1407
+ stores: CatalogApplicationModel.ProductSizeStores(),
1408
+ discount_meta: CatalogApplicationModel.DiscountMeta(),
1382
1409
  });
1383
1410
  }
1384
1411
 
1385
- /** @returns {Department} */
1386
- static Department() {
1412
+ /** @returns {AttributeDetail} */
1413
+ static AttributeDetail() {
1387
1414
  return Joi.object({
1388
- logo: CatalogApplicationModel.Media(),
1389
- name: Joi.string().allow(""),
1390
- priority_order: Joi.number(),
1391
- slug: Joi.string().allow(""),
1392
- uid: Joi.number(),
1415
+ logo: Joi.string().allow(""),
1416
+ description: Joi.string().allow(""),
1417
+ display: Joi.string().allow(""),
1418
+ key: Joi.string().allow(""),
1393
1419
  });
1394
1420
  }
1395
1421
 
1396
- /** @returns {DepartmentCategoryTree} */
1397
- static DepartmentCategoryTree() {
1422
+ /** @returns {AttributeMetadata} */
1423
+ static AttributeMetadata() {
1398
1424
  return Joi.object({
1399
- department: Joi.string().allow("").required(),
1400
- items: Joi.array().items(CatalogApplicationModel.CategoryItems()),
1425
+ title: Joi.string().allow(""),
1426
+ details: Joi.array().items(CatalogApplicationModel.AttributeDetail()),
1401
1427
  });
1402
1428
  }
1403
1429
 
1404
- /** @returns {DepartmentIdentifier} */
1405
- static DepartmentIdentifier() {
1430
+ /** @returns {ProductsComparisonResponse} */
1431
+ static ProductsComparisonResponse() {
1406
1432
  return Joi.object({
1407
- slug: Joi.string().allow(""),
1408
- uid: Joi.number(),
1433
+ items: Joi.array().items(CatalogApplicationModel.ProductDetail()),
1434
+ attributes_metadata: Joi.array().items(
1435
+ CatalogApplicationModel.AttributeMetadata()
1436
+ ),
1409
1437
  });
1410
1438
  }
1411
1439
 
1412
- /** @returns {DepartmentResponse} */
1413
- static DepartmentResponse() {
1440
+ /** @returns {ProductCompareResponse} */
1441
+ static ProductCompareResponse() {
1414
1442
  return Joi.object({
1415
- items: Joi.array().items(CatalogApplicationModel.Department()),
1443
+ title: Joi.string().allow(""),
1444
+ items: Joi.array().items(CatalogApplicationModel.ProductDetail()),
1445
+ attributes_metadata: Joi.array().items(
1446
+ CatalogApplicationModel.AttributeMetadata()
1447
+ ),
1448
+ subtitle: Joi.string().allow(""),
1416
1449
  });
1417
1450
  }
1418
1451
 
1419
- /** @returns {DetailsSchemaV3} */
1420
- static DetailsSchemaV3() {
1452
+ /** @returns {ProductFrequentlyComparedSimilarResponse} */
1453
+ static ProductFrequentlyComparedSimilarResponse() {
1421
1454
  return Joi.object({
1422
- key: Joi.string().allow(""),
1423
- type: Joi.string().allow(""),
1424
- value: Joi.string().allow(""),
1455
+ similars: CatalogApplicationModel.ProductCompareResponse(),
1425
1456
  });
1426
1457
  }
1427
1458
 
1428
- /** @returns {Dimension} */
1429
- static Dimension() {
1459
+ /** @returns {ProductVariantItemResponse} */
1460
+ static ProductVariantItemResponse() {
1430
1461
  return Joi.object({
1431
- height: Joi.number().required(),
1432
- is_default: Joi.boolean().required(),
1433
- length: Joi.number().required(),
1434
- unit: Joi.string().allow("").required(),
1435
- width: Joi.number().required(),
1462
+ uid: Joi.number(),
1463
+ color_name: Joi.string().allow(""),
1464
+ color: Joi.string().allow(""),
1465
+ medias: Joi.array().items(CatalogApplicationModel.Media()),
1466
+ is_available: Joi.boolean(),
1467
+ _custom_meta: Joi.array().items(
1468
+ CatalogApplicationModel.CustomMetaFields()
1469
+ ),
1470
+ name: Joi.string().allow(""),
1471
+ value: Joi.string().allow(""),
1472
+ slug: Joi.string().allow(""),
1473
+ action: CatalogApplicationModel.ProductListingAction(),
1436
1474
  });
1437
1475
  }
1438
1476
 
1439
- /** @returns {DiscountMeta} */
1440
- static DiscountMeta() {
1477
+ /** @returns {ProductVariantResponse} */
1478
+ static ProductVariantResponse() {
1441
1479
  return Joi.object({
1442
- end: Joi.string().allow(""),
1443
- start: Joi.string().allow(""),
1444
- start_timer_in_minutes: Joi.number(),
1445
- timer: Joi.boolean().required(),
1480
+ display_type: Joi.string().allow(""),
1481
+ header: Joi.string().allow(""),
1482
+ items: Joi.array().items(
1483
+ CatalogApplicationModel.ProductVariantItemResponse()
1484
+ ),
1485
+ key: Joi.string().allow(""),
1446
1486
  });
1447
1487
  }
1448
1488
 
1449
- /** @returns {ErrorResponse} */
1450
- static ErrorResponse() {
1489
+ /** @returns {ProductVariantsResponse} */
1490
+ static ProductVariantsResponse() {
1451
1491
  return Joi.object({
1452
- error: Joi.string().allow(""),
1492
+ variants: Joi.array().items(
1493
+ CatalogApplicationModel.ProductVariantResponse()
1494
+ ),
1453
1495
  });
1454
1496
  }
1455
1497
 
1456
- /** @returns {FollowerCountResponse} */
1457
- static FollowerCountResponse() {
1498
+ /** @returns {StoreDetail} */
1499
+ static StoreDetail() {
1458
1500
  return Joi.object({
1459
- count: Joi.number(),
1501
+ name: Joi.string().allow(""),
1502
+ city: Joi.string().allow(""),
1503
+ id: Joi.number(),
1504
+ code: Joi.string().allow(""),
1460
1505
  });
1461
1506
  }
1462
1507
 
1463
- /** @returns {FollowIdsData} */
1464
- static FollowIdsData() {
1508
+ /** @returns {ProductStockPrice} */
1509
+ static ProductStockPrice() {
1465
1510
  return Joi.object({
1466
- brands: Joi.array().items(Joi.number()),
1467
- collections: Joi.array().items(Joi.number()),
1468
- products: Joi.array().items(Joi.number()),
1511
+ effective: Joi.number(),
1512
+ currency: Joi.string().allow(""),
1513
+ marked: Joi.number(),
1469
1514
  });
1470
1515
  }
1471
1516
 
1472
- /** @returns {FollowIdsResponse} */
1473
- static FollowIdsResponse() {
1517
+ /** @returns {CompanyDetail} */
1518
+ static CompanyDetail() {
1474
1519
  return Joi.object({
1475
- data: CatalogApplicationModel.FollowIdsData(),
1520
+ name: Joi.string().allow(""),
1521
+ id: Joi.number(),
1476
1522
  });
1477
1523
  }
1478
1524
 
1479
- /** @returns {FollowPostResponse} */
1480
- static FollowPostResponse() {
1525
+ /** @returns {Seller} */
1526
+ static Seller() {
1481
1527
  return Joi.object({
1482
- id: Joi.string().allow("").required(),
1483
- message: Joi.string().allow("").required(),
1528
+ uid: Joi.number(),
1529
+ name: Joi.string().allow(""),
1530
+ count: Joi.number(),
1484
1531
  });
1485
1532
  }
1486
1533
 
1487
- /** @returns {GetCollectionDetailNest} */
1488
- static GetCollectionDetailNest() {
1534
+ /** @returns {ProductStockStatusItem} */
1535
+ static ProductStockStatusItem() {
1489
1536
  return Joi.object({
1490
- _custom_json: Joi.any(),
1491
- _schedule: Joi.any(),
1492
- action: CatalogApplicationModel.ProductListingAction(),
1493
- allow_facets: Joi.boolean(),
1494
- allow_sort: Joi.boolean(),
1495
- app_id: Joi.string().allow(""),
1496
- badge: Joi.any(),
1497
- banners: CatalogApplicationModel.ImageUrls(),
1498
- cron: Joi.any(),
1499
- description: Joi.string().allow(""),
1500
- is_active: Joi.boolean(),
1501
- logo: CatalogApplicationModel.Media(),
1502
- meta: Joi.any(),
1503
- name: Joi.string().allow(""),
1504
- priority: Joi.number(),
1505
- query: Joi.array().items(CatalogApplicationModel.CollectionQuery()),
1506
- slug: Joi.string().allow(""),
1507
- sort_on: Joi.string().allow(""),
1508
- tags: Joi.array().items(Joi.string().allow("")),
1509
- type: Joi.string().allow(""),
1510
1537
  uid: Joi.string().allow(""),
1511
- visible_facets_keys: Joi.array().items(Joi.string().allow("")),
1538
+ quantity: Joi.number(),
1539
+ store: CatalogApplicationModel.StoreDetail(),
1540
+ size: Joi.string().allow(""),
1541
+ price: CatalogApplicationModel.ProductStockPrice(),
1542
+ company: CatalogApplicationModel.CompanyDetail(),
1543
+ item_id: Joi.number(),
1544
+ seller: CatalogApplicationModel.Seller(),
1545
+ identifier: Joi.any(),
1512
1546
  });
1513
1547
  }
1514
1548
 
1515
- /** @returns {GetCollectionListingResponse} */
1516
- static GetCollectionListingResponse() {
1549
+ /** @returns {ProductStockStatusResponse} */
1550
+ static ProductStockStatusResponse() {
1517
1551
  return Joi.object({
1518
- filters: CatalogApplicationModel.CollectionListingFilter(),
1519
1552
  items: Joi.array().items(
1520
- CatalogApplicationModel.GetCollectionDetailNest()
1553
+ CatalogApplicationModel.ProductStockStatusItem()
1521
1554
  ),
1522
- page: CatalogApplicationModel.Page().required(),
1523
1555
  });
1524
1556
  }
1525
1557
 
1526
- /** @returns {GetFollowListingResponse} */
1527
- static GetFollowListingResponse() {
1558
+ /** @returns {Page} */
1559
+ static Page() {
1528
1560
  return Joi.object({
1529
- items: Joi.array()
1530
- .items(CatalogApplicationModel.ProductListingDetail())
1531
- .required(),
1532
- page: CatalogApplicationModel.Page().required(),
1561
+ item_total: Joi.number(),
1562
+ next_id: Joi.string().allow(""),
1563
+ has_previous: Joi.boolean(),
1564
+ has_next: Joi.boolean(),
1565
+ current: Joi.number(),
1566
+ type: Joi.string().allow("").required(),
1567
+ size: Joi.number(),
1533
1568
  });
1534
1569
  }
1535
1570
 
1536
- /** @returns {HomeListingResponse} */
1537
- static HomeListingResponse() {
1571
+ /** @returns {ProductStockPolling} */
1572
+ static ProductStockPolling() {
1538
1573
  return Joi.object({
1539
- items: Joi.array().items(CatalogApplicationModel.ProductListingDetail()),
1540
- message: Joi.string().allow(""),
1574
+ items: Joi.array().items(
1575
+ CatalogApplicationModel.ProductStockStatusItem()
1576
+ ),
1541
1577
  page: CatalogApplicationModel.Page().required(),
1542
1578
  });
1543
1579
  }
1544
1580
 
1545
- /** @returns {ImageUrls} */
1546
- static ImageUrls() {
1581
+ /** @returns {ProductVariantListingResponse} */
1582
+ static ProductVariantListingResponse() {
1547
1583
  return Joi.object({
1548
- landscape: CatalogApplicationModel.Media(),
1549
- portrait: CatalogApplicationModel.Media(),
1584
+ header: Joi.string().allow(""),
1585
+ items: Joi.array().items(
1586
+ CatalogApplicationModel.ProductVariantItemResponse()
1587
+ ),
1588
+ total: Joi.number(),
1589
+ key: Joi.string().allow(""),
1590
+ display_type: Joi.string().allow(""),
1550
1591
  });
1551
1592
  }
1552
1593
 
1553
- /** @returns {LatLong} */
1554
- static LatLong() {
1594
+ /** @returns {ProductListingDetail} */
1595
+ static ProductListingDetail() {
1555
1596
  return Joi.object({
1556
- coordinates: Joi.array().items(Joi.number()),
1597
+ uid: Joi.number(),
1598
+ custom_order: CatalogApplicationModel.ProductDetailCustomOrder(),
1599
+ sizes: Joi.array().items(Joi.string().allow("")),
1600
+ category_map: CatalogApplicationModel.ProductCategoryMap(),
1601
+ net_quantity: CatalogApplicationModel.NetQuantity(),
1602
+ rating_count: Joi.number(),
1603
+ _custom_meta: Joi.array().items(
1604
+ CatalogApplicationModel.CustomMetaFields()
1605
+ ),
1606
+ similars: Joi.array().items(Joi.string().allow("")),
1607
+ tags: Joi.array().items(Joi.string().allow("")),
1608
+ seo: CatalogApplicationModel.ApplicationItemSEO(),
1609
+ image_nature: Joi.string().allow(""),
1610
+ has_variant: Joi.boolean(),
1611
+ item_type: Joi.string().allow(""),
1612
+ description: Joi.string().allow(""),
1613
+ grouped_attributes: Joi.array().items(
1614
+ CatalogApplicationModel.ProductDetailGroupedAttribute()
1615
+ ),
1616
+ medias: Joi.array().items(CatalogApplicationModel.Media()),
1617
+ color: Joi.string().allow(""),
1557
1618
  type: Joi.string().allow(""),
1619
+ product_online_date: Joi.string().allow(""),
1620
+ _custom_json: Joi.any(),
1621
+ item_code: Joi.string().allow(""),
1622
+ name: Joi.string().allow(""),
1623
+ moq: CatalogApplicationModel.ApplicationItemMOQ(),
1624
+ short_description: Joi.string().allow(""),
1625
+ categories: Joi.array().items(CatalogApplicationModel.ProductBrand()),
1626
+ sellable: Joi.boolean(),
1627
+ attributes: Joi.any(),
1628
+ variants: Joi.array().items(
1629
+ CatalogApplicationModel.ProductVariantListingResponse()
1630
+ ),
1631
+ discount: Joi.string().allow(""),
1632
+ tryouts: Joi.array().items(Joi.string().allow("")),
1633
+ identifiers: Joi.array().items(Joi.string().allow("")),
1634
+ slug: Joi.string().allow("").required(),
1635
+ action: CatalogApplicationModel.ProductListingAction(),
1636
+ rating: Joi.number(),
1637
+ is_dependent: Joi.boolean(),
1638
+ product_group_tag: Joi.array().items(Joi.string().allow("")),
1639
+ highlights: Joi.array().items(Joi.string().allow("")),
1640
+ price: CatalogApplicationModel.ProductListingPrice(),
1641
+ brand: CatalogApplicationModel.ProductBrand(),
1642
+ teaser_tag: Joi.string().allow(""),
1558
1643
  });
1559
1644
  }
1560
1645
 
1561
- /** @returns {MarketPlaceSttributesSchemaV3} */
1562
- static MarketPlaceSttributesSchemaV3() {
1646
+ /** @returns {ProductFiltersValue} */
1647
+ static ProductFiltersValue() {
1563
1648
  return Joi.object({
1564
- details: Joi.array().items(CatalogApplicationModel.DetailsSchemaV3()),
1565
- title: Joi.string().allow(""),
1649
+ min: Joi.number(),
1650
+ display_format: Joi.string().allow(""),
1651
+ selected_max: Joi.number(),
1652
+ value: Joi.string().allow(""),
1653
+ query_format: Joi.string().allow(""),
1654
+ currency_symbol: Joi.string().allow(""),
1655
+ selected_min: Joi.number(),
1656
+ currency_code: Joi.string().allow(""),
1657
+ is_selected: Joi.boolean().required(),
1658
+ display: Joi.string().allow("").required(),
1659
+ count: Joi.number(),
1660
+ max: Joi.number(),
1566
1661
  });
1567
1662
  }
1568
1663
 
1569
- /** @returns {Media} */
1570
- static Media() {
1664
+ /** @returns {ProductFiltersKey} */
1665
+ static ProductFiltersKey() {
1571
1666
  return Joi.object({
1572
- alt: Joi.string().allow(""),
1573
- meta: CatalogApplicationModel.Meta(),
1574
- type: Joi.string().allow(""),
1575
- url: Joi.string().allow(""),
1667
+ logo: Joi.string().allow(""),
1668
+ name: Joi.string().allow("").required(),
1669
+ kind: Joi.string().allow(""),
1670
+ display: Joi.string().allow("").required(),
1576
1671
  });
1577
1672
  }
1578
1673
 
1579
- /** @returns {Meta} */
1580
- static Meta() {
1674
+ /** @returns {ProductFilters} */
1675
+ static ProductFilters() {
1581
1676
  return Joi.object({
1582
- source: Joi.string().allow(""),
1677
+ values: Joi.array()
1678
+ .items(CatalogApplicationModel.ProductFiltersValue())
1679
+ .required(),
1680
+ key: CatalogApplicationModel.ProductFiltersKey().required(),
1583
1681
  });
1584
1682
  }
1585
1683
 
1586
- /** @returns {NetQuantity} */
1587
- static NetQuantity() {
1684
+ /** @returns {ProductSortOn} */
1685
+ static ProductSortOn() {
1588
1686
  return Joi.object({
1589
- unit: Joi.any(),
1590
- value: Joi.number(),
1687
+ logo: Joi.string().allow(""),
1688
+ is_selected: Joi.boolean(),
1689
+ name: Joi.string().allow(""),
1690
+ value: Joi.string().allow(""),
1691
+ display: Joi.string().allow(""),
1591
1692
  });
1592
1693
  }
1593
1694
 
1594
- /** @returns {Page} */
1595
- static Page() {
1695
+ /** @returns {ProductListingResponse} */
1696
+ static ProductListingResponse() {
1596
1697
  return Joi.object({
1597
- current: Joi.number(),
1598
- has_next: Joi.boolean(),
1599
- has_previous: Joi.boolean(),
1600
- item_total: Joi.number(),
1601
- next_id: Joi.string().allow(""),
1602
- size: Joi.number(),
1603
- type: Joi.string().allow("").required(),
1698
+ items: Joi.array().items(CatalogApplicationModel.ProductListingDetail()),
1699
+ filters: Joi.array().items(CatalogApplicationModel.ProductFilters()),
1700
+ page: CatalogApplicationModel.Page().required(),
1701
+ sort_on: Joi.array().items(CatalogApplicationModel.ProductSortOn()),
1604
1702
  });
1605
1703
  }
1606
1704
 
1607
- /** @returns {Price} */
1608
- static Price() {
1705
+ /** @returns {ImageUrls} */
1706
+ static ImageUrls() {
1609
1707
  return Joi.object({
1610
- currency_code: Joi.string().allow(""),
1611
- currency_symbol: Joi.string().allow(""),
1612
- max: Joi.number(),
1613
- min: Joi.number(),
1708
+ portrait: CatalogApplicationModel.Media(),
1709
+ landscape: CatalogApplicationModel.Media(),
1614
1710
  });
1615
1711
  }
1616
1712
 
1617
- /** @returns {ProductBrand} */
1618
- static ProductBrand() {
1713
+ /** @returns {BrandItem} */
1714
+ static BrandItem() {
1619
1715
  return Joi.object({
1620
- action: CatalogApplicationModel.ProductListingAction(),
1621
- description: Joi.string().allow(""),
1716
+ uid: Joi.number(),
1622
1717
  logo: CatalogApplicationModel.Media(),
1718
+ description: Joi.string().allow(""),
1719
+ banners: CatalogApplicationModel.ImageUrls(),
1720
+ departments: Joi.array().items(Joi.string().allow("")),
1721
+ discount: Joi.string().allow(""),
1623
1722
  name: Joi.string().allow(""),
1624
- uid: Joi.number(),
1625
- });
1626
- }
1627
-
1628
- /** @returns {ProductBundle} */
1629
- static ProductBundle() {
1630
- return Joi.object({
1631
- items: Joi.array().items(CatalogApplicationModel.ProductGroupingModel()),
1632
- });
1633
- }
1634
-
1635
- /** @returns {ProductCategoryMap} */
1636
- static ProductCategoryMap() {
1637
- return Joi.object({
1638
- l1: CatalogApplicationModel.ProductBrand(),
1639
- l2: CatalogApplicationModel.ProductBrand(),
1640
- l3: CatalogApplicationModel.ProductBrand(),
1723
+ slug: Joi.string().allow(""),
1724
+ action: CatalogApplicationModel.ProductListingAction(),
1641
1725
  });
1642
1726
  }
1643
1727
 
1644
- /** @returns {ProductCompareResponse} */
1645
- static ProductCompareResponse() {
1646
- return Joi.object({
1647
- attributes_metadata: Joi.array().items(
1648
- CatalogApplicationModel.AttributeMetadata()
1649
- ),
1650
- items: Joi.array().items(CatalogApplicationModel.ProductDetail()),
1651
- subtitle: Joi.string().allow(""),
1652
- title: Joi.string().allow(""),
1728
+ /** @returns {BrandListingResponse} */
1729
+ static BrandListingResponse() {
1730
+ return Joi.object({
1731
+ items: Joi.array().items(CatalogApplicationModel.BrandItem()),
1732
+ page: CatalogApplicationModel.Page().required(),
1653
1733
  });
1654
1734
  }
1655
1735
 
1656
- /** @returns {ProductDepartment} */
1657
- static ProductDepartment() {
1736
+ /** @returns {BrandDetailResponse} */
1737
+ static BrandDetailResponse() {
1658
1738
  return Joi.object({
1659
1739
  logo: CatalogApplicationModel.Media(),
1660
- name: Joi.string().allow(""),
1661
- slug: Joi.string().allow(""),
1662
1740
  uid: Joi.number(),
1741
+ description: Joi.string().allow(""),
1742
+ banners: CatalogApplicationModel.ImageUrls(),
1743
+ _custom_json: Joi.any(),
1744
+ name: Joi.string().allow(""),
1663
1745
  });
1664
1746
  }
1665
1747
 
1666
- /** @returns {ProductDetail} */
1667
- static ProductDetail() {
1748
+ /** @returns {CategoryBanner} */
1749
+ static CategoryBanner() {
1750
+ return Joi.object({
1751
+ portrait: CatalogApplicationModel.Media().required(),
1752
+ landscape: CatalogApplicationModel.Media().required(),
1753
+ });
1754
+ }
1755
+
1756
+ /** @returns {ThirdLevelChild} */
1757
+ static ThirdLevelChild() {
1668
1758
  return Joi.object({
1759
+ uid: Joi.number(),
1760
+ banners: CatalogApplicationModel.ImageUrls(),
1761
+ childs: Joi.array().items(Joi.any()),
1669
1762
  _custom_json: Joi.any(),
1670
- _custom_meta: Joi.array().items(
1671
- CatalogApplicationModel.CustomMetaFields()
1672
- ),
1673
- action: CatalogApplicationModel.ProductListingAction(),
1674
- attributes: Joi.any(),
1675
- brand: CatalogApplicationModel.ProductBrand(),
1676
- categories: Joi.array().items(CatalogApplicationModel.ProductBrand()),
1677
- category_map: CatalogApplicationModel.ProductCategoryMap(),
1678
- color: Joi.string().allow(""),
1679
- custom_order: CatalogApplicationModel.ProductDetailCustomOrder(),
1680
- department: CatalogApplicationModel.ProductDepartment(),
1681
- description: Joi.string().allow(""),
1682
- discount: Joi.string().allow(""),
1683
- grouped_attributes: Joi.array().items(
1684
- CatalogApplicationModel.ProductDetailGroupedAttribute()
1685
- ),
1686
- has_variant: Joi.boolean(),
1687
- highlights: Joi.array().items(Joi.string().allow("")),
1688
- image_nature: Joi.string().allow(""),
1689
- is_dependent: Joi.boolean(),
1690
- item_code: Joi.string().allow(""),
1691
- item_type: Joi.string().allow(""),
1692
- medias: Joi.array().items(CatalogApplicationModel.Media()),
1693
- moq: CatalogApplicationModel.ApplicationItemMOQ(),
1694
1763
  name: Joi.string().allow(""),
1695
- net_quantity: CatalogApplicationModel.NetQuantity(),
1696
- price: CatalogApplicationModel.ProductListingPrice(),
1697
- product_group_tag: Joi.array().items(Joi.string().allow("")),
1698
- product_online_date: Joi.string().allow(""),
1699
- rating: Joi.number(),
1700
- rating_count: Joi.number(),
1701
- seo: CatalogApplicationModel.ApplicationItemSEO(),
1702
- short_description: Joi.string().allow(""),
1703
- similars: Joi.array().items(Joi.string().allow("")),
1704
- slug: Joi.string().allow("").required(),
1705
- tags: Joi.array().items(Joi.string().allow("")),
1706
- teaser_tag: Joi.string().allow(""),
1707
- tryouts: Joi.array().items(Joi.string().allow("")),
1708
- type: Joi.string().allow(""),
1709
- uid: Joi.number(),
1764
+ slug: Joi.string().allow(""),
1765
+ action: CatalogApplicationModel.ProductListingAction(),
1710
1766
  });
1711
1767
  }
1712
1768
 
1713
- /** @returns {ProductDetailAttribute} */
1714
- static ProductDetailAttribute() {
1769
+ /** @returns {SecondLevelChild} */
1770
+ static SecondLevelChild() {
1715
1771
  return Joi.object({
1716
- key: Joi.string().allow(""),
1717
- type: Joi.string().allow(""),
1718
- value: Joi.string().allow(""),
1772
+ uid: Joi.number(),
1773
+ banners: CatalogApplicationModel.ImageUrls(),
1774
+ childs: Joi.array().items(CatalogApplicationModel.ThirdLevelChild()),
1775
+ _custom_json: Joi.any(),
1776
+ name: Joi.string().allow(""),
1777
+ slug: Joi.string().allow(""),
1778
+ action: CatalogApplicationModel.ProductListingAction(),
1719
1779
  });
1720
1780
  }
1721
1781
 
1722
- /** @returns {ProductDetailCustomOrder} */
1723
- static ProductDetailCustomOrder() {
1782
+ /** @returns {Child} */
1783
+ static Child() {
1724
1784
  return Joi.object({
1725
- is_custom_order: Joi.boolean(),
1726
- manufacturing_time: Joi.number(),
1727
- manufacturing_time_unit: Joi.string().allow(""),
1785
+ uid: Joi.number(),
1786
+ banners: CatalogApplicationModel.ImageUrls(),
1787
+ childs: Joi.array().items(CatalogApplicationModel.SecondLevelChild()),
1788
+ _custom_json: Joi.any(),
1789
+ name: Joi.string().allow(""),
1790
+ slug: Joi.string().allow(""),
1791
+ action: CatalogApplicationModel.ProductListingAction(),
1728
1792
  });
1729
1793
  }
1730
1794
 
1731
- /** @returns {ProductDetailGroupedAttribute} */
1732
- static ProductDetailGroupedAttribute() {
1795
+ /** @returns {CategoryItems} */
1796
+ static CategoryItems() {
1733
1797
  return Joi.object({
1734
- details: Joi.array().items(
1735
- CatalogApplicationModel.ProductDetailAttribute()
1736
- ),
1737
- title: Joi.string().allow(""),
1798
+ uid: Joi.number().required(),
1799
+ banners: CatalogApplicationModel.CategoryBanner().required(),
1800
+ childs: Joi.array().items(CatalogApplicationModel.Child()),
1801
+ name: Joi.string().allow("").required(),
1802
+ slug: Joi.string().allow("").required(),
1803
+ action: CatalogApplicationModel.ProductListingAction().required(),
1738
1804
  });
1739
1805
  }
1740
1806
 
1741
- /** @returns {ProductDetails} */
1742
- static ProductDetails() {
1807
+ /** @returns {DepartmentCategoryTree} */
1808
+ static DepartmentCategoryTree() {
1743
1809
  return Joi.object({
1744
- attributes: Joi.any(),
1745
- brand_uid: Joi.number(),
1746
- country_of_origin: Joi.any(),
1747
- description: Joi.any(),
1748
- grouped_attributes: Joi.any(),
1749
- has_variant: Joi.boolean(),
1750
- highlights: Joi.array().items(Joi.any()),
1751
- hsn_code: Joi.number(),
1752
- identifier: Joi.any(),
1753
- image_nature: Joi.any(),
1754
- images: Joi.array().items(Joi.any()),
1755
- is_set: Joi.boolean(),
1756
- item_code: Joi.any(),
1757
- media: Joi.array().items(Joi.any()),
1758
- name: Joi.any(),
1759
- out_of_stock: Joi.boolean(),
1760
- rating: Joi.number(),
1761
- rating_count: Joi.number(),
1762
- short_description: Joi.any(),
1763
- slug: Joi.any(),
1764
- template_tag: Joi.any(),
1810
+ items: Joi.array().items(CatalogApplicationModel.CategoryItems()),
1811
+ department: Joi.string().allow("").required(),
1765
1812
  });
1766
1813
  }
1767
1814
 
1768
- /** @returns {ProductFilters} */
1769
- static ProductFilters() {
1815
+ /** @returns {DepartmentIdentifier} */
1816
+ static DepartmentIdentifier() {
1770
1817
  return Joi.object({
1771
- key: CatalogApplicationModel.ProductFiltersKey().required(),
1772
- values: Joi.array()
1773
- .items(CatalogApplicationModel.ProductFiltersValue())
1774
- .required(),
1818
+ uid: Joi.number(),
1819
+ slug: Joi.string().allow(""),
1775
1820
  });
1776
1821
  }
1777
1822
 
1778
- /** @returns {ProductFiltersKey} */
1779
- static ProductFiltersKey() {
1823
+ /** @returns {CategoryListingResponse} */
1824
+ static CategoryListingResponse() {
1780
1825
  return Joi.object({
1781
- display: Joi.string().allow("").required(),
1782
- kind: Joi.string().allow(""),
1783
- logo: Joi.string().allow(""),
1784
- name: Joi.string().allow("").required(),
1826
+ data: Joi.array().items(CatalogApplicationModel.DepartmentCategoryTree()),
1827
+ departments: Joi.array().items(
1828
+ CatalogApplicationModel.DepartmentIdentifier()
1829
+ ),
1785
1830
  });
1786
1831
  }
1787
1832
 
1788
- /** @returns {ProductFiltersValue} */
1789
- static ProductFiltersValue() {
1833
+ /** @returns {CategoryMetaResponse} */
1834
+ static CategoryMetaResponse() {
1790
1835
  return Joi.object({
1791
- count: Joi.number(),
1792
- currency_code: Joi.string().allow(""),
1793
- currency_symbol: Joi.string().allow(""),
1794
- display: Joi.string().allow("").required(),
1795
- display_format: Joi.string().allow(""),
1796
- is_selected: Joi.boolean().required(),
1797
- max: Joi.number(),
1798
- min: Joi.number(),
1799
- query_format: Joi.string().allow(""),
1800
- selected_max: Joi.number(),
1801
- selected_min: Joi.number(),
1802
- value: Joi.string().allow(""),
1836
+ logo: CatalogApplicationModel.Media(),
1837
+ uid: Joi.number(),
1838
+ banners: CatalogApplicationModel.ImageUrls(),
1839
+ _custom_json: Joi.any(),
1840
+ name: Joi.string().allow(""),
1803
1841
  });
1804
1842
  }
1805
1843
 
1806
- /** @returns {ProductFrequentlyComparedSimilarResponse} */
1807
- static ProductFrequentlyComparedSimilarResponse() {
1844
+ /** @returns {HomeListingResponse} */
1845
+ static HomeListingResponse() {
1808
1846
  return Joi.object({
1809
- similars: CatalogApplicationModel.ProductCompareResponse(),
1847
+ items: Joi.array().items(CatalogApplicationModel.ProductListingDetail()),
1848
+ page: CatalogApplicationModel.Page().required(),
1849
+ message: Joi.string().allow(""),
1810
1850
  });
1811
1851
  }
1812
1852
 
1813
- /** @returns {ProductGroupingModel} */
1814
- static ProductGroupingModel() {
1853
+ /** @returns {Department} */
1854
+ static Department() {
1815
1855
  return Joi.object({
1816
- _id: Joi.any(),
1817
- choice: Joi.any(),
1818
- company_id: Joi.number(),
1819
- created_by: CatalogApplicationModel.UserDetail(),
1820
- created_on: Joi.string().allow("").required(),
1821
- is_active: Joi.boolean(),
1822
- logo: Joi.string().allow("").allow(null),
1823
- meta: Joi.any(),
1824
- modified_by: CatalogApplicationModel.UserDetail(),
1825
- modified_on: Joi.string().allow("").required(),
1826
- name: Joi.any().required(),
1827
- page_visibility: Joi.array().items(Joi.any()),
1828
- products: Joi.array()
1829
- .items(CatalogApplicationModel.ProductInGroup())
1830
- .required(),
1831
- same_store_assignment: Joi.boolean(),
1832
- slug: Joi.any(),
1833
- verified_by: CatalogApplicationModel.UserDetail(),
1834
- verified_on: Joi.string().allow(""),
1856
+ uid: Joi.number(),
1857
+ logo: CatalogApplicationModel.Media(),
1858
+ priority_order: Joi.number(),
1859
+ name: Joi.string().allow(""),
1860
+ slug: Joi.string().allow(""),
1835
1861
  });
1836
1862
  }
1837
1863
 
1838
- /** @returns {ProductGroupPrice} */
1839
- static ProductGroupPrice() {
1864
+ /** @returns {DepartmentResponse} */
1865
+ static DepartmentResponse() {
1840
1866
  return Joi.object({
1841
- currency: Joi.any(),
1842
- max_effective: Joi.number(),
1843
- max_marked: Joi.number(),
1844
- min_effective: Joi.number(),
1845
- min_marked: Joi.number(),
1867
+ items: Joi.array().items(CatalogApplicationModel.Department()),
1846
1868
  });
1847
1869
  }
1848
1870
 
1849
- /** @returns {ProductInGroup} */
1850
- static ProductInGroup() {
1871
+ /** @returns {AutocompleteItem} */
1872
+ static AutocompleteItem() {
1851
1873
  return Joi.object({
1852
- allow_remove: Joi.boolean(),
1853
- auto_add_to_cart: Joi.boolean(),
1854
- auto_select: Joi.boolean(),
1855
- max_quantity: Joi.number().required(),
1856
- min_quantity: Joi.number(),
1857
- price: CatalogApplicationModel.ProductGroupPrice(),
1858
- product_details: CatalogApplicationModel.ProductDetails(),
1859
- product_uid: Joi.number().required(),
1860
- sizes: Joi.array().items(CatalogApplicationModel.Size()),
1874
+ logo: CatalogApplicationModel.Media(),
1875
+ display: Joi.string().allow(""),
1876
+ type: Joi.string().allow(""),
1877
+ _custom_json: Joi.any(),
1878
+ action: CatalogApplicationModel.ProductListingAction(),
1861
1879
  });
1862
1880
  }
1863
1881
 
1864
- /** @returns {ProductListingAction} */
1865
- static ProductListingAction() {
1882
+ /** @returns {AutoCompleteResponse} */
1883
+ static AutoCompleteResponse() {
1866
1884
  return Joi.object({
1867
- page: CatalogApplicationModel.ProductListingActionPage(),
1868
- type: Joi.string().allow(""),
1885
+ items: Joi.array().items(CatalogApplicationModel.AutocompleteItem()),
1869
1886
  });
1870
1887
  }
1871
1888
 
1872
- /** @returns {ProductListingActionPage} */
1873
- static ProductListingActionPage() {
1889
+ /** @returns {CollectionQuery} */
1890
+ static CollectionQuery() {
1874
1891
  return Joi.object({
1875
- params: Joi.any(),
1876
- query: Joi.any(),
1877
- type: Joi.string().allow(""),
1892
+ op: Joi.string().allow("").required(),
1893
+ value: Joi.array().items(Joi.any()).required(),
1894
+ attribute: Joi.string().allow("").required(),
1878
1895
  });
1879
1896
  }
1880
1897
 
1881
- /** @returns {ProductListingDetail} */
1882
- static ProductListingDetail() {
1898
+ /** @returns {GetCollectionDetailNest} */
1899
+ static GetCollectionDetailNest() {
1883
1900
  return Joi.object({
1884
- _custom_json: Joi.any(),
1885
- _custom_meta: Joi.array().items(
1886
- CatalogApplicationModel.CustomMetaFields()
1887
- ),
1888
- action: CatalogApplicationModel.ProductListingAction(),
1889
- attributes: Joi.any(),
1890
- brand: CatalogApplicationModel.ProductBrand(),
1891
- categories: Joi.array().items(CatalogApplicationModel.ProductBrand()),
1892
- category_map: CatalogApplicationModel.ProductCategoryMap(),
1893
- color: Joi.string().allow(""),
1894
- custom_order: CatalogApplicationModel.ProductDetailCustomOrder(),
1901
+ is_active: Joi.boolean(),
1902
+ uid: Joi.string().allow(""),
1903
+ sort_on: Joi.string().allow(""),
1904
+ meta: Joi.any(),
1905
+ banners: CatalogApplicationModel.ImageUrls(),
1906
+ cron: Joi.any(),
1907
+ _schedule: Joi.any(),
1908
+ query: Joi.array().items(CatalogApplicationModel.CollectionQuery()),
1895
1909
  description: Joi.string().allow(""),
1896
- discount: Joi.string().allow(""),
1897
- grouped_attributes: Joi.array().items(
1898
- CatalogApplicationModel.ProductDetailGroupedAttribute()
1899
- ),
1900
- has_variant: Joi.boolean(),
1901
- highlights: Joi.array().items(Joi.string().allow("")),
1902
- identifiers: Joi.array().items(Joi.string().allow("")),
1903
- image_nature: Joi.string().allow(""),
1904
- is_dependent: Joi.boolean(),
1905
- item_code: Joi.string().allow(""),
1906
- item_type: Joi.string().allow(""),
1907
- medias: Joi.array().items(CatalogApplicationModel.Media()),
1908
- moq: CatalogApplicationModel.ApplicationItemMOQ(),
1910
+ type: Joi.string().allow(""),
1911
+ _custom_json: Joi.any(),
1909
1912
  name: Joi.string().allow(""),
1910
- net_quantity: CatalogApplicationModel.NetQuantity(),
1911
- price: CatalogApplicationModel.ProductListingPrice(),
1912
- product_group_tag: Joi.array().items(Joi.string().allow("")),
1913
- product_online_date: Joi.string().allow(""),
1914
- rating: Joi.number(),
1915
- rating_count: Joi.number(),
1916
- sellable: Joi.boolean(),
1917
- seo: CatalogApplicationModel.ApplicationItemSEO(),
1918
- short_description: Joi.string().allow(""),
1919
- similars: Joi.array().items(Joi.string().allow("")),
1920
- sizes: Joi.array().items(Joi.string().allow("")),
1921
- slug: Joi.string().allow("").required(),
1913
+ allow_sort: Joi.boolean(),
1914
+ visible_facets_keys: Joi.array().items(Joi.string().allow("")),
1915
+ badge: Joi.any(),
1916
+ slug: Joi.string().allow(""),
1917
+ action: CatalogApplicationModel.ProductListingAction(),
1918
+ allow_facets: Joi.boolean(),
1919
+ logo: CatalogApplicationModel.Media(),
1920
+ priority: Joi.number(),
1922
1921
  tags: Joi.array().items(Joi.string().allow("")),
1923
- teaser_tag: Joi.string().allow(""),
1924
- tryouts: Joi.array().items(Joi.string().allow("")),
1925
- type: Joi.string().allow(""),
1926
- uid: Joi.number(),
1927
- variants: Joi.array().items(
1928
- CatalogApplicationModel.ProductVariantListingResponse()
1929
- ),
1922
+ app_id: Joi.string().allow(""),
1930
1923
  });
1931
1924
  }
1932
1925
 
1933
- /** @returns {ProductListingPrice} */
1934
- static ProductListingPrice() {
1926
+ /** @returns {CollectionListingFilterTag} */
1927
+ static CollectionListingFilterTag() {
1935
1928
  return Joi.object({
1936
- effective: CatalogApplicationModel.Price(),
1937
- marked: CatalogApplicationModel.Price(),
1929
+ name: Joi.string().allow(""),
1930
+ is_selected: Joi.boolean(),
1931
+ display: Joi.string().allow(""),
1938
1932
  });
1939
1933
  }
1940
1934
 
1941
- /** @returns {ProductListingResponse} */
1942
- static ProductListingResponse() {
1935
+ /** @returns {CollectionListingFilterType} */
1936
+ static CollectionListingFilterType() {
1943
1937
  return Joi.object({
1944
- filters: Joi.array().items(CatalogApplicationModel.ProductFilters()),
1945
- items: Joi.array().items(CatalogApplicationModel.ProductListingDetail()),
1946
- page: CatalogApplicationModel.Page().required(),
1947
- sort_on: Joi.array().items(CatalogApplicationModel.ProductSortOn()),
1938
+ name: Joi.string().allow(""),
1939
+ is_selected: Joi.boolean(),
1940
+ display: Joi.string().allow(""),
1948
1941
  });
1949
1942
  }
1950
1943
 
1951
- /** @returns {ProductsComparisonResponse} */
1952
- static ProductsComparisonResponse() {
1944
+ /** @returns {CollectionListingFilter} */
1945
+ static CollectionListingFilter() {
1953
1946
  return Joi.object({
1954
- attributes_metadata: Joi.array().items(
1955
- CatalogApplicationModel.AttributeMetadata()
1947
+ tags: Joi.array().items(
1948
+ CatalogApplicationModel.CollectionListingFilterTag()
1949
+ ),
1950
+ type: Joi.array().items(
1951
+ CatalogApplicationModel.CollectionListingFilterType()
1956
1952
  ),
1957
- items: Joi.array().items(CatalogApplicationModel.ProductDetail()),
1958
1953
  });
1959
1954
  }
1960
1955
 
1961
- /** @returns {ProductSetDistributionSizeV3} */
1962
- static ProductSetDistributionSizeV3() {
1956
+ /** @returns {GetCollectionListingResponse} */
1957
+ static GetCollectionListingResponse() {
1963
1958
  return Joi.object({
1964
- pieces: Joi.number(),
1965
- size: Joi.string().allow(""),
1959
+ items: Joi.array().items(
1960
+ CatalogApplicationModel.GetCollectionDetailNest()
1961
+ ),
1962
+ filters: CatalogApplicationModel.CollectionListingFilter(),
1963
+ page: CatalogApplicationModel.Page().required(),
1966
1964
  });
1967
1965
  }
1968
1966
 
1969
- /** @returns {ProductSetDistributionV3} */
1970
- static ProductSetDistributionV3() {
1967
+ /** @returns {CollectionDetailResponse} */
1968
+ static CollectionDetailResponse() {
1971
1969
  return Joi.object({
1972
- sizes: Joi.array().items(
1973
- CatalogApplicationModel.ProductSetDistributionSizeV3()
1974
- ),
1970
+ is_active: Joi.boolean(),
1971
+ sort_on: Joi.string().allow(""),
1972
+ meta: Joi.any(),
1973
+ banners: CatalogApplicationModel.ImageUrls(),
1974
+ cron: Joi.any(),
1975
+ _schedule: Joi.any(),
1976
+ query: Joi.array().items(CatalogApplicationModel.CollectionQuery()),
1977
+ description: Joi.string().allow(""),
1978
+ type: Joi.string().allow(""),
1979
+ _custom_json: Joi.any(),
1980
+ name: Joi.string().allow(""),
1981
+ allow_sort: Joi.boolean(),
1982
+ visible_facets_keys: Joi.array().items(Joi.string().allow("")),
1983
+ badge: Joi.any(),
1984
+ slug: Joi.string().allow(""),
1985
+ allow_facets: Joi.boolean(),
1986
+ logo: CatalogApplicationModel.Media(),
1987
+ priority: Joi.number(),
1988
+ tag: Joi.array().items(Joi.string().allow("")),
1989
+ app_id: Joi.string().allow(""),
1975
1990
  });
1976
1991
  }
1977
1992
 
1978
- /** @returns {ProductSetV3} */
1979
- static ProductSetV3() {
1993
+ /** @returns {GetFollowListingResponse} */
1994
+ static GetFollowListingResponse() {
1980
1995
  return Joi.object({
1981
- quantity: Joi.number(),
1982
- size_distribution: CatalogApplicationModel.ProductSetDistributionV3(),
1996
+ items: Joi.array()
1997
+ .items(CatalogApplicationModel.ProductListingDetail())
1998
+ .required(),
1999
+ page: CatalogApplicationModel.Page().required(),
1983
2000
  });
1984
2001
  }
1985
2002
 
1986
- /** @returns {ProductSize} */
1987
- static ProductSize() {
2003
+ /** @returns {FollowPostResponse} */
2004
+ static FollowPostResponse() {
1988
2005
  return Joi.object({
1989
- dimension: CatalogApplicationModel.Dimension(),
1990
- display: Joi.string().allow(""),
1991
- is_available: Joi.boolean(),
1992
- quantity: Joi.number(),
1993
- seller_identifiers: Joi.array().items(Joi.string().allow("")),
1994
- value: Joi.string().allow(""),
1995
- weight: CatalogApplicationModel.Weight(),
2006
+ message: Joi.string().allow("").required(),
2007
+ id: Joi.string().allow("").required(),
1996
2008
  });
1997
2009
  }
1998
2010
 
1999
- /** @returns {ProductSizePriceResponseV3} */
2000
- static ProductSizePriceResponseV3() {
2011
+ /** @returns {FollowerCountResponse} */
2012
+ static FollowerCountResponse() {
2001
2013
  return Joi.object({
2002
- article_assignment: CatalogApplicationModel.ArticleAssignmentV3(),
2003
- article_id: Joi.string().allow(""),
2004
- delivery_promise: CatalogApplicationModel.PromiseSchema(),
2005
- discount: Joi.string().allow(""),
2006
- discount_meta: CatalogApplicationModel.DiscountMeta(),
2007
- grouped_attributes: Joi.array().items(
2008
- CatalogApplicationModel.SellerGroupAttributes()
2009
- ),
2010
- is_cod: Joi.boolean(),
2011
- is_gift: Joi.boolean(),
2012
- item_type: Joi.string().allow(""),
2013
- long_lat: Joi.array().items(Joi.number()),
2014
- marketplace_attributes: Joi.array().items(
2015
- CatalogApplicationModel.MarketPlaceSttributesSchemaV3()
2016
- ),
2017
- pincode: Joi.number(),
2018
- price: CatalogApplicationModel.ProductStockPriceV3(),
2019
- price_per_piece: CatalogApplicationModel.ProductStockPriceV3(),
2020
- price_per_unit: CatalogApplicationModel.ProductStockUnitPriceV3(),
2021
- quantity: Joi.number(),
2022
- return_config: CatalogApplicationModel.ReturnConfigSchemaV3(),
2023
- seller: CatalogApplicationModel.SellerV3(),
2024
- seller_count: Joi.number(),
2025
- set: CatalogApplicationModel.ProductSetV3(),
2026
- special_badge: Joi.string().allow(""),
2027
- store: CatalogApplicationModel.StoreV3(),
2028
- strategy_wise_listing: Joi.array().items(
2029
- CatalogApplicationModel.StrategyWiseListingSchemaV3()
2030
- ),
2014
+ count: Joi.number(),
2031
2015
  });
2032
2016
  }
2033
2017
 
2034
- /** @returns {ProductSizes} */
2035
- static ProductSizes() {
2018
+ /** @returns {FollowIdsData} */
2019
+ static FollowIdsData() {
2036
2020
  return Joi.object({
2037
- discount: Joi.string().allow(""),
2038
- discount_meta: CatalogApplicationModel.DiscountMeta(),
2039
- multi_size: Joi.boolean(),
2040
- price: CatalogApplicationModel.ProductSizesPrice(),
2041
- sellable: Joi.boolean(),
2042
- size_chart: CatalogApplicationModel.SizeChart(),
2043
- sizes: Joi.array().items(CatalogApplicationModel.ProductSize()),
2044
- stores: CatalogApplicationModel.ProductSizeStores(),
2021
+ products: Joi.array().items(Joi.number()),
2022
+ collections: Joi.array().items(Joi.number()),
2023
+ brands: Joi.array().items(Joi.number()),
2045
2024
  });
2046
2025
  }
2047
2026
 
2048
- /** @returns {ProductSizeSellerFilterSchemaV3} */
2049
- static ProductSizeSellerFilterSchemaV3() {
2027
+ /** @returns {FollowIdsResponse} */
2028
+ static FollowIdsResponse() {
2050
2029
  return Joi.object({
2051
- is_selected: Joi.boolean(),
2052
- name: Joi.string().allow(""),
2053
- value: Joi.string().allow(""),
2030
+ data: CatalogApplicationModel.FollowIdsData(),
2054
2031
  });
2055
2032
  }
2056
2033
 
2057
- /** @returns {ProductSizeSellersResponseV3} */
2058
- static ProductSizeSellersResponseV3() {
2034
+ /** @returns {LatLong} */
2035
+ static LatLong() {
2059
2036
  return Joi.object({
2060
- items: Joi.array().items(
2061
- CatalogApplicationModel.ProductSizePriceResponseV3()
2062
- ),
2063
- page: CatalogApplicationModel.Page().required(),
2064
- sort_on: Joi.array().items(
2065
- CatalogApplicationModel.ProductSizeSellerFilterSchemaV3()
2066
- ),
2037
+ coordinates: Joi.array().items(Joi.number()),
2038
+ type: Joi.string().allow(""),
2067
2039
  });
2068
2040
  }
2069
2041
 
2070
- /** @returns {ProductSizesPrice} */
2071
- static ProductSizesPrice() {
2042
+ /** @returns {Store} */
2043
+ static Store() {
2072
2044
  return Joi.object({
2073
- effective: CatalogApplicationModel.Price(),
2074
- marked: CatalogApplicationModel.Price(),
2075
- selling: CatalogApplicationModel.Price(),
2045
+ uid: Joi.number(),
2046
+ store_email: Joi.string().allow(""),
2047
+ state: Joi.string().allow(""),
2048
+ country: Joi.string().allow(""),
2049
+ pincode: Joi.number(),
2050
+ city: Joi.string().allow(""),
2051
+ address: Joi.string().allow(""),
2052
+ store_code: Joi.string().allow(""),
2053
+ lat_long: CatalogApplicationModel.LatLong(),
2054
+ name: Joi.string().allow(""),
2055
+ tags: Joi.array().items(Joi.string().allow("")),
2076
2056
  });
2077
2057
  }
2078
2058
 
2079
- /** @returns {ProductSizeStores} */
2080
- static ProductSizeStores() {
2059
+ /** @returns {StoreListingResponse} */
2060
+ static StoreListingResponse() {
2081
2061
  return Joi.object({
2082
- count: Joi.number(),
2062
+ items: Joi.array().items(CatalogApplicationModel.Store()).required(),
2063
+ page: CatalogApplicationModel.Page().required(),
2083
2064
  });
2084
2065
  }
2085
2066
 
2086
- /** @returns {ProductSortOn} */
2087
- static ProductSortOn() {
2067
+ /** @returns {StoreDepartments} */
2068
+ static StoreDepartments() {
2088
2069
  return Joi.object({
2089
- display: Joi.string().allow(""),
2090
- is_selected: Joi.boolean(),
2091
- logo: Joi.string().allow(""),
2070
+ uid: Joi.number(),
2071
+ logo: Joi.any(),
2072
+ priority_order: Joi.number(),
2092
2073
  name: Joi.string().allow(""),
2093
- value: Joi.string().allow(""),
2074
+ slug: Joi.string().allow(""),
2094
2075
  });
2095
2076
  }
2096
2077
 
2097
- /** @returns {ProductStockPolling} */
2098
- static ProductStockPolling() {
2078
+ /** @returns {CompanyStore} */
2079
+ static CompanyStore() {
2099
2080
  return Joi.object({
2100
- items: Joi.array().items(
2101
- CatalogApplicationModel.ProductStockStatusItem()
2102
- ),
2103
- page: CatalogApplicationModel.Page().required(),
2081
+ uid: Joi.number(),
2082
+ name: Joi.string().allow(""),
2083
+ company_type: Joi.string().allow(""),
2084
+ business_type: Joi.string().allow(""),
2104
2085
  });
2105
2086
  }
2106
2087
 
2107
- /** @returns {ProductStockPrice} */
2108
- static ProductStockPrice() {
2088
+ /** @returns {SellerPhoneNumber} */
2089
+ static SellerPhoneNumber() {
2109
2090
  return Joi.object({
2110
- currency: Joi.string().allow(""),
2111
- effective: Joi.number(),
2112
- marked: Joi.number(),
2091
+ country_code: Joi.number().required(),
2092
+ number: Joi.string().allow("").required(),
2113
2093
  });
2114
2094
  }
2115
2095
 
2116
- /** @returns {ProductStockPriceV3} */
2117
- static ProductStockPriceV3() {
2096
+ /** @returns {StoreManagerSerializer} */
2097
+ static StoreManagerSerializer() {
2118
2098
  return Joi.object({
2119
- currency_code: Joi.string().allow(""),
2120
- currency_symbol: Joi.string().allow(""),
2121
- effective: Joi.number(),
2122
- marked: Joi.number(),
2123
- selling: Joi.number(),
2099
+ name: Joi.string().allow(""),
2100
+ email: Joi.string().allow(""),
2101
+ mobile_no: CatalogApplicationModel.SellerPhoneNumber(),
2124
2102
  });
2125
2103
  }
2126
2104
 
2127
- /** @returns {ProductStockStatusItem} */
2128
- static ProductStockStatusItem() {
2105
+ /** @returns {StoreAddressSerializer} */
2106
+ static StoreAddressSerializer() {
2129
2107
  return Joi.object({
2130
- company: CatalogApplicationModel.CompanyDetail(),
2131
- identifier: Joi.any(),
2132
- item_id: Joi.number(),
2133
- price: CatalogApplicationModel.ProductStockPrice(),
2134
- quantity: Joi.number(),
2135
- seller: CatalogApplicationModel.Seller(),
2136
- size: Joi.string().allow(""),
2137
- store: CatalogApplicationModel.StoreDetail(),
2138
- uid: Joi.string().allow(""),
2108
+ latitude: Joi.number(),
2109
+ state: Joi.string().allow(""),
2110
+ country: Joi.string().allow(""),
2111
+ landmark: Joi.string().allow(""),
2112
+ address1: Joi.string().allow(""),
2113
+ pincode: Joi.number(),
2114
+ city: Joi.string().allow(""),
2115
+ longitude: Joi.number(),
2116
+ address2: Joi.string().allow(""),
2139
2117
  });
2140
2118
  }
2141
2119
 
2142
- /** @returns {ProductStockStatusResponse} */
2143
- static ProductStockStatusResponse() {
2120
+ /** @returns {AppStore} */
2121
+ static AppStore() {
2144
2122
  return Joi.object({
2145
- items: Joi.array().items(
2146
- CatalogApplicationModel.ProductStockStatusItem()
2123
+ uid: Joi.number(),
2124
+ departments: Joi.array().items(
2125
+ CatalogApplicationModel.StoreDepartments()
2126
+ ),
2127
+ company: CatalogApplicationModel.CompanyStore(),
2128
+ manager: CatalogApplicationModel.StoreManagerSerializer(),
2129
+ store_code: Joi.string().allow(""),
2130
+ address: CatalogApplicationModel.StoreAddressSerializer(),
2131
+ name: Joi.string().allow(""),
2132
+ contact_numbers: Joi.array().items(
2133
+ CatalogApplicationModel.SellerPhoneNumber()
2147
2134
  ),
2148
2135
  });
2149
2136
  }
2150
2137
 
2151
- /** @returns {ProductStockUnitPriceV3} */
2152
- static ProductStockUnitPriceV3() {
2138
+ /** @returns {ApplicationStoreListing} */
2139
+ static ApplicationStoreListing() {
2153
2140
  return Joi.object({
2154
- currency_code: Joi.string().allow(""),
2155
- currency_symbol: Joi.string().allow(""),
2156
- price: Joi.number(),
2157
- unit: Joi.string().allow(""),
2141
+ filters: Joi.array().items(Joi.any()),
2142
+ items: Joi.array().items(CatalogApplicationModel.AppStore()),
2143
+ page: CatalogApplicationModel.Page(),
2158
2144
  });
2159
2145
  }
2160
2146
 
2161
- /** @returns {ProductVariantItemResponse} */
2162
- static ProductVariantItemResponse() {
2147
+ /** @returns {Time} */
2148
+ static Time() {
2163
2149
  return Joi.object({
2164
- _custom_meta: Joi.array().items(
2165
- CatalogApplicationModel.CustomMetaFields()
2166
- ),
2167
- action: CatalogApplicationModel.ProductListingAction(),
2168
- color: Joi.string().allow(""),
2169
- color_name: Joi.string().allow(""),
2170
- is_available: Joi.boolean(),
2171
- medias: Joi.array().items(CatalogApplicationModel.Media()),
2172
- name: Joi.string().allow(""),
2173
- slug: Joi.string().allow(""),
2174
- uid: Joi.number(),
2175
- value: Joi.string().allow(""),
2150
+ hour: Joi.number(),
2151
+ minute: Joi.number(),
2176
2152
  });
2177
2153
  }
2178
2154
 
2179
- /** @returns {ProductVariantListingResponse} */
2180
- static ProductVariantListingResponse() {
2155
+ /** @returns {StoreTiming} */
2156
+ static StoreTiming() {
2181
2157
  return Joi.object({
2182
- display_type: Joi.string().allow(""),
2183
- header: Joi.string().allow(""),
2184
- items: Joi.array().items(
2185
- CatalogApplicationModel.ProductVariantItemResponse()
2186
- ),
2187
- key: Joi.string().allow(""),
2188
- total: Joi.number(),
2158
+ open: Joi.boolean(),
2159
+ closing: CatalogApplicationModel.Time(),
2160
+ weekday: Joi.string().allow(""),
2161
+ opening: CatalogApplicationModel.Time(),
2189
2162
  });
2190
2163
  }
2191
2164
 
2192
- /** @returns {ProductVariantResponse} */
2193
- static ProductVariantResponse() {
2165
+ /** @returns {StoreDetails} */
2166
+ static StoreDetails() {
2194
2167
  return Joi.object({
2195
- display_type: Joi.string().allow(""),
2196
- header: Joi.string().allow(""),
2197
- items: Joi.array().items(
2198
- CatalogApplicationModel.ProductVariantItemResponse()
2168
+ uid: Joi.number(),
2169
+ departments: Joi.array().items(
2170
+ CatalogApplicationModel.StoreDepartments()
2171
+ ),
2172
+ company: CatalogApplicationModel.CompanyStore(),
2173
+ manager: CatalogApplicationModel.StoreManagerSerializer(),
2174
+ store_code: Joi.string().allow(""),
2175
+ timing: Joi.array().items(CatalogApplicationModel.StoreTiming()),
2176
+ address: CatalogApplicationModel.StoreAddressSerializer(),
2177
+ _custom_json: Joi.any(),
2178
+ name: Joi.string().allow(""),
2179
+ contact_numbers: Joi.array().items(
2180
+ CatalogApplicationModel.SellerPhoneNumber()
2199
2181
  ),
2200
- key: Joi.string().allow(""),
2201
2182
  });
2202
2183
  }
2203
2184
 
2204
- /** @returns {ProductVariantsResponse} */
2205
- static ProductVariantsResponse() {
2185
+ /** @returns {UserDetail} */
2186
+ static UserDetail() {
2206
2187
  return Joi.object({
2207
- variants: Joi.array().items(
2208
- CatalogApplicationModel.ProductVariantResponse()
2209
- ),
2188
+ super_user: Joi.boolean(),
2189
+ contact: Joi.string().allow(""),
2190
+ username: Joi.string().allow("").required(),
2191
+ user_id: Joi.string().allow("").required(),
2210
2192
  });
2211
2193
  }
2212
2194
 
2213
- /** @returns {PromiseSchema} */
2214
- static PromiseSchema() {
2195
+ /** @returns {Size} */
2196
+ static Size() {
2215
2197
  return Joi.object({
2216
- max: Joi.string().allow(""),
2217
- min: Joi.string().allow(""),
2198
+ quantity: Joi.number(),
2199
+ value: Joi.any(),
2200
+ display: Joi.any(),
2201
+ is_available: Joi.boolean(),
2218
2202
  });
2219
2203
  }
2220
2204
 
2221
- /** @returns {ReturnConfigSchemaV3} */
2222
- static ReturnConfigSchemaV3() {
2205
+ /** @returns {ProductGroupPrice} */
2206
+ static ProductGroupPrice() {
2223
2207
  return Joi.object({
2224
- returnable: Joi.boolean(),
2225
- time: Joi.number(),
2226
- unit: Joi.string().allow(""),
2208
+ max_effective: Joi.number(),
2209
+ min_effective: Joi.number(),
2210
+ min_marked: Joi.number(),
2211
+ currency: Joi.any(),
2212
+ max_marked: Joi.number(),
2227
2213
  });
2228
2214
  }
2229
2215
 
2230
- /** @returns {SecondLevelChild} */
2231
- static SecondLevelChild() {
2216
+ /** @returns {ProductDetails} */
2217
+ static ProductDetails() {
2232
2218
  return Joi.object({
2233
- _custom_json: Joi.any(),
2234
- action: CatalogApplicationModel.ProductListingAction(),
2235
- banners: CatalogApplicationModel.ImageUrls(),
2236
- childs: Joi.array().items(CatalogApplicationModel.ThirdLevelChild()),
2237
- name: Joi.string().allow(""),
2238
- slug: Joi.string().allow(""),
2239
- uid: Joi.number(),
2219
+ template_tag: Joi.any(),
2220
+ rating_count: Joi.number(),
2221
+ image_nature: Joi.any(),
2222
+ has_variant: Joi.boolean(),
2223
+ description: Joi.any(),
2224
+ out_of_stock: Joi.boolean(),
2225
+ hsn_code: Joi.number(),
2226
+ grouped_attributes: Joi.any(),
2227
+ item_code: Joi.any(),
2228
+ name: Joi.any(),
2229
+ country_of_origin: Joi.any(),
2230
+ short_description: Joi.any(),
2231
+ media: Joi.array().items(Joi.any()),
2232
+ attributes: Joi.any(),
2233
+ is_set: Joi.boolean(),
2234
+ images: Joi.array().items(Joi.any()),
2235
+ slug: Joi.any(),
2236
+ rating: Joi.number(),
2237
+ identifier: Joi.any(),
2238
+ highlights: Joi.array().items(Joi.any()),
2239
+ brand_uid: Joi.number(),
2240
2240
  });
2241
2241
  }
2242
2242
 
2243
- /** @returns {Seller} */
2244
- static Seller() {
2243
+ /** @returns {ProductInGroup} */
2244
+ static ProductInGroup() {
2245
2245
  return Joi.object({
2246
- count: Joi.number(),
2247
- name: Joi.string().allow(""),
2248
- uid: Joi.number(),
2246
+ auto_add_to_cart: Joi.boolean(),
2247
+ max_quantity: Joi.number().required(),
2248
+ sizes: Joi.array().items(CatalogApplicationModel.Size()),
2249
+ price: CatalogApplicationModel.ProductGroupPrice(),
2250
+ auto_select: Joi.boolean(),
2251
+ product_details: CatalogApplicationModel.ProductDetails(),
2252
+ min_quantity: Joi.number(),
2253
+ allow_remove: Joi.boolean(),
2254
+ product_uid: Joi.number().required(),
2249
2255
  });
2250
2256
  }
2251
2257
 
2252
- /** @returns {SellerGroupAttributes} */
2253
- static SellerGroupAttributes() {
2258
+ /** @returns {ProductGroupingModel} */
2259
+ static ProductGroupingModel() {
2254
2260
  return Joi.object({
2255
- details: Joi.array().items(CatalogApplicationModel.DetailsSchemaV3()),
2256
- title: Joi.string().allow(""),
2261
+ logo: Joi.string().allow("").allow(null),
2262
+ is_active: Joi.boolean(),
2263
+ meta: Joi.any(),
2264
+ verified_by: CatalogApplicationModel.UserDetail(),
2265
+ created_on: Joi.string().allow("").required(),
2266
+ company_id: Joi.number(),
2267
+ page_visibility: Joi.array().items(Joi.any()),
2268
+ modified_on: Joi.string().allow("").required(),
2269
+ created_by: CatalogApplicationModel.UserDetail(),
2270
+ modified_by: CatalogApplicationModel.UserDetail(),
2271
+ products: Joi.array()
2272
+ .items(CatalogApplicationModel.ProductInGroup())
2273
+ .required(),
2274
+ same_store_assignment: Joi.boolean(),
2275
+ _id: Joi.any(),
2276
+ name: Joi.any().required(),
2277
+ choice: Joi.any(),
2278
+ slug: Joi.any(),
2279
+ verified_on: Joi.string().allow(""),
2257
2280
  });
2258
2281
  }
2259
2282
 
2260
- /** @returns {SellerPhoneNumber} */
2261
- static SellerPhoneNumber() {
2283
+ /** @returns {ProductBundle} */
2284
+ static ProductBundle() {
2262
2285
  return Joi.object({
2263
- country_code: Joi.number().required(),
2264
- number: Joi.string().allow("").required(),
2286
+ items: Joi.array().items(CatalogApplicationModel.ProductGroupingModel()),
2265
2287
  });
2266
2288
  }
2267
2289
 
2268
- /** @returns {SellerV3} */
2269
- static SellerV3() {
2290
+ /** @returns {StoreV3} */
2291
+ static StoreV3() {
2270
2292
  return Joi.object({
2271
- count: Joi.number(),
2272
- name: Joi.string().allow(""),
2273
2293
  uid: Joi.number(),
2294
+ name: Joi.string().allow(""),
2295
+ count: Joi.number(),
2274
2296
  });
2275
2297
  }
2276
2298
 
2277
- /** @returns {Size} */
2278
- static Size() {
2279
- return Joi.object({
2280
- display: Joi.any(),
2281
- is_available: Joi.boolean(),
2282
- quantity: Joi.number(),
2283
- value: Joi.any(),
2284
- });
2285
- }
2286
-
2287
- /** @returns {SizeChart} */
2288
- static SizeChart() {
2299
+ /** @returns {ArticleAssignmentV3} */
2300
+ static ArticleAssignmentV3() {
2289
2301
  return Joi.object({
2290
- description: Joi.string().allow(""),
2291
- headers: CatalogApplicationModel.ColumnHeaders(),
2292
- image: Joi.string().allow(""),
2293
- size_tip: Joi.string().allow(""),
2294
- sizes: Joi.array().items(CatalogApplicationModel.SizeChartValues()),
2295
- title: Joi.string().allow(""),
2296
- unit: Joi.string().allow(""),
2302
+ strategy: Joi.string().allow(""),
2303
+ level: Joi.string().allow(""),
2297
2304
  });
2298
2305
  }
2299
2306
 
2300
- /** @returns {SizeChartValues} */
2301
- static SizeChartValues() {
2307
+ /** @returns {StrategyWiseListingSchemaV3} */
2308
+ static StrategyWiseListingSchemaV3() {
2302
2309
  return Joi.object({
2303
- col_1: Joi.string().allow(""),
2304
- col_2: Joi.string().allow(""),
2305
- col_3: Joi.string().allow(""),
2306
- col_4: Joi.string().allow(""),
2307
- col_5: Joi.string().allow(""),
2308
- col_6: Joi.string().allow(""),
2310
+ distance: Joi.number(),
2311
+ pincode: Joi.number(),
2312
+ tat: Joi.number(),
2313
+ quantity: Joi.number(),
2309
2314
  });
2310
2315
  }
2311
2316
 
2312
- /** @returns {Store} */
2313
- static Store() {
2317
+ /** @returns {DetailsSchemaV3} */
2318
+ static DetailsSchemaV3() {
2314
2319
  return Joi.object({
2315
- address: Joi.string().allow(""),
2316
- city: Joi.string().allow(""),
2317
- country: Joi.string().allow(""),
2318
- lat_long: CatalogApplicationModel.LatLong(),
2319
- name: Joi.string().allow(""),
2320
- pincode: Joi.number(),
2321
- state: Joi.string().allow(""),
2322
- store_code: Joi.string().allow(""),
2323
- store_email: Joi.string().allow(""),
2324
- tags: Joi.array().items(Joi.string().allow("")),
2325
- uid: Joi.number(),
2320
+ value: Joi.string().allow(""),
2321
+ type: Joi.string().allow(""),
2322
+ key: Joi.string().allow(""),
2326
2323
  });
2327
2324
  }
2328
2325
 
2329
- /** @returns {StoreAddressSerializer} */
2330
- static StoreAddressSerializer() {
2326
+ /** @returns {SellerGroupAttributes} */
2327
+ static SellerGroupAttributes() {
2331
2328
  return Joi.object({
2332
- address1: Joi.string().allow(""),
2333
- address2: Joi.string().allow(""),
2334
- city: Joi.string().allow(""),
2335
- country: Joi.string().allow(""),
2336
- landmark: Joi.string().allow(""),
2337
- latitude: Joi.number(),
2338
- longitude: Joi.number(),
2339
- pincode: Joi.number(),
2340
- state: Joi.string().allow(""),
2329
+ title: Joi.string().allow(""),
2330
+ details: Joi.array().items(CatalogApplicationModel.DetailsSchemaV3()),
2341
2331
  });
2342
2332
  }
2343
2333
 
2344
- /** @returns {StoreDepartments} */
2345
- static StoreDepartments() {
2334
+ /** @returns {ReturnConfigSchemaV3} */
2335
+ static ReturnConfigSchemaV3() {
2346
2336
  return Joi.object({
2347
- logo: Joi.any(),
2348
- name: Joi.string().allow(""),
2349
- priority_order: Joi.number(),
2350
- slug: Joi.string().allow(""),
2351
- uid: Joi.number(),
2337
+ unit: Joi.string().allow(""),
2338
+ returnable: Joi.boolean(),
2339
+ time: Joi.number(),
2352
2340
  });
2353
2341
  }
2354
2342
 
2355
- /** @returns {StoreDetail} */
2356
- static StoreDetail() {
2343
+ /** @returns {ProductSetDistributionSizeV3} */
2344
+ static ProductSetDistributionSizeV3() {
2357
2345
  return Joi.object({
2358
- city: Joi.string().allow(""),
2359
- code: Joi.string().allow(""),
2360
- id: Joi.number(),
2361
- name: Joi.string().allow(""),
2346
+ pieces: Joi.number(),
2347
+ size: Joi.string().allow(""),
2362
2348
  });
2363
2349
  }
2364
2350
 
2365
- /** @returns {StoreDetails} */
2366
- static StoreDetails() {
2351
+ /** @returns {ProductSetDistributionV3} */
2352
+ static ProductSetDistributionV3() {
2367
2353
  return Joi.object({
2368
- _custom_json: Joi.any(),
2369
- address: CatalogApplicationModel.StoreAddressSerializer(),
2370
- company: CatalogApplicationModel.CompanyStore(),
2371
- contact_numbers: Joi.array().items(
2372
- CatalogApplicationModel.SellerPhoneNumber()
2373
- ),
2374
- departments: Joi.array().items(
2375
- CatalogApplicationModel.StoreDepartments()
2354
+ sizes: Joi.array().items(
2355
+ CatalogApplicationModel.ProductSetDistributionSizeV3()
2376
2356
  ),
2377
- manager: CatalogApplicationModel.StoreManagerSerializer(),
2378
- name: Joi.string().allow(""),
2379
- store_code: Joi.string().allow(""),
2380
- timing: Joi.array().items(CatalogApplicationModel.StoreTiming()),
2381
- uid: Joi.number(),
2382
2357
  });
2383
2358
  }
2384
2359
 
2385
- /** @returns {StoreListingResponse} */
2386
- static StoreListingResponse() {
2360
+ /** @returns {ProductSetV3} */
2361
+ static ProductSetV3() {
2387
2362
  return Joi.object({
2388
- items: Joi.array().items(CatalogApplicationModel.Store()).required(),
2389
- page: CatalogApplicationModel.Page().required(),
2363
+ quantity: Joi.number(),
2364
+ size_distribution: CatalogApplicationModel.ProductSetDistributionV3(),
2390
2365
  });
2391
2366
  }
2392
2367
 
2393
- /** @returns {StoreManagerSerializer} */
2394
- static StoreManagerSerializer() {
2368
+ /** @returns {ProductStockPriceV3} */
2369
+ static ProductStockPriceV3() {
2395
2370
  return Joi.object({
2396
- email: Joi.string().allow(""),
2397
- mobile_no: CatalogApplicationModel.SellerPhoneNumber(),
2398
- name: Joi.string().allow(""),
2371
+ effective: Joi.number(),
2372
+ currency_code: Joi.string().allow(""),
2373
+ currency_symbol: Joi.string().allow(""),
2374
+ marked: Joi.number(),
2375
+ selling: Joi.number(),
2399
2376
  });
2400
2377
  }
2401
2378
 
2402
- /** @returns {StoreTiming} */
2403
- static StoreTiming() {
2379
+ /** @returns {ProductStockUnitPriceV3} */
2380
+ static ProductStockUnitPriceV3() {
2404
2381
  return Joi.object({
2405
- closing: CatalogApplicationModel.Time(),
2406
- open: Joi.boolean(),
2407
- opening: CatalogApplicationModel.Time(),
2408
- weekday: Joi.string().allow(""),
2382
+ unit: Joi.string().allow(""),
2383
+ currency_symbol: Joi.string().allow(""),
2384
+ currency_code: Joi.string().allow(""),
2385
+ price: Joi.number(),
2409
2386
  });
2410
2387
  }
2411
2388
 
2412
- /** @returns {StoreV3} */
2413
- static StoreV3() {
2389
+ /** @returns {MarketPlaceSttributesSchemaV3} */
2390
+ static MarketPlaceSttributesSchemaV3() {
2414
2391
  return Joi.object({
2415
- count: Joi.number(),
2416
- name: Joi.string().allow(""),
2417
- uid: Joi.number(),
2392
+ title: Joi.string().allow(""),
2393
+ details: Joi.array().items(CatalogApplicationModel.DetailsSchemaV3()),
2418
2394
  });
2419
2395
  }
2420
2396
 
2421
- /** @returns {StrategyWiseListingSchemaV3} */
2422
- static StrategyWiseListingSchemaV3() {
2397
+ /** @returns {SellerV3} */
2398
+ static SellerV3() {
2423
2399
  return Joi.object({
2424
- distance: Joi.number(),
2425
- pincode: Joi.number(),
2426
- quantity: Joi.number(),
2427
- tat: Joi.number(),
2400
+ uid: Joi.number(),
2401
+ name: Joi.string().allow(""),
2402
+ count: Joi.number(),
2428
2403
  });
2429
2404
  }
2430
2405
 
2431
- /** @returns {ThirdLevelChild} */
2432
- static ThirdLevelChild() {
2406
+ /** @returns {PromiseSchema} */
2407
+ static PromiseSchema() {
2433
2408
  return Joi.object({
2434
- _custom_json: Joi.any(),
2435
- action: CatalogApplicationModel.ProductListingAction(),
2436
- banners: CatalogApplicationModel.ImageUrls(),
2437
- childs: Joi.array().items(Joi.any()),
2438
- name: Joi.string().allow(""),
2439
- slug: Joi.string().allow(""),
2440
- uid: Joi.number(),
2409
+ min: Joi.string().allow(""),
2410
+ max: Joi.string().allow(""),
2441
2411
  });
2442
2412
  }
2443
2413
 
2444
- /** @returns {Time} */
2445
- static Time() {
2414
+ /** @returns {ProductSizePriceResponseV3} */
2415
+ static ProductSizePriceResponseV3() {
2446
2416
  return Joi.object({
2447
- hour: Joi.number(),
2448
- minute: Joi.number(),
2417
+ store: CatalogApplicationModel.StoreV3(),
2418
+ article_assignment: CatalogApplicationModel.ArticleAssignmentV3(),
2419
+ is_cod: Joi.boolean(),
2420
+ strategy_wise_listing: Joi.array().items(
2421
+ CatalogApplicationModel.StrategyWiseListingSchemaV3()
2422
+ ),
2423
+ quantity: Joi.number(),
2424
+ item_type: Joi.string().allow(""),
2425
+ grouped_attributes: Joi.array().items(
2426
+ CatalogApplicationModel.SellerGroupAttributes()
2427
+ ),
2428
+ return_config: CatalogApplicationModel.ReturnConfigSchemaV3(),
2429
+ article_id: Joi.string().allow(""),
2430
+ is_gift: Joi.boolean(),
2431
+ set: CatalogApplicationModel.ProductSetV3(),
2432
+ seller_count: Joi.number(),
2433
+ price_per_piece: CatalogApplicationModel.ProductStockPriceV3(),
2434
+ discount_meta: CatalogApplicationModel.DiscountMeta(),
2435
+ discount: Joi.string().allow(""),
2436
+ long_lat: Joi.array().items(Joi.number()),
2437
+ special_badge: Joi.string().allow(""),
2438
+ price: CatalogApplicationModel.ProductStockPriceV3(),
2439
+ price_per_unit: CatalogApplicationModel.ProductStockUnitPriceV3(),
2440
+ pincode: Joi.number(),
2441
+ marketplace_attributes: Joi.array().items(
2442
+ CatalogApplicationModel.MarketPlaceSttributesSchemaV3()
2443
+ ),
2444
+ seller: CatalogApplicationModel.SellerV3(),
2445
+ delivery_promise: CatalogApplicationModel.PromiseSchema(),
2449
2446
  });
2450
2447
  }
2451
2448
 
2452
- /** @returns {UserDetail} */
2453
- static UserDetail() {
2449
+ /** @returns {ProductSizeSellerFilterSchemaV3} */
2450
+ static ProductSizeSellerFilterSchemaV3() {
2454
2451
  return Joi.object({
2455
- contact: Joi.string().allow(""),
2456
- super_user: Joi.boolean(),
2457
- user_id: Joi.string().allow("").required(),
2458
- username: Joi.string().allow("").required(),
2452
+ name: Joi.string().allow(""),
2453
+ is_selected: Joi.boolean(),
2454
+ value: Joi.string().allow(""),
2459
2455
  });
2460
2456
  }
2461
2457
 
2462
- /** @returns {Weight} */
2463
- static Weight() {
2458
+ /** @returns {ProductSizeSellersResponseV3} */
2459
+ static ProductSizeSellersResponseV3() {
2464
2460
  return Joi.object({
2465
- is_default: Joi.boolean().required(),
2466
- shipping: Joi.number().required(),
2467
- unit: Joi.string().allow("").required(),
2461
+ items: Joi.array().items(
2462
+ CatalogApplicationModel.ProductSizePriceResponseV3()
2463
+ ),
2464
+ page: CatalogApplicationModel.Page().required(),
2465
+ sort_on: Joi.array().items(
2466
+ CatalogApplicationModel.ProductSizeSellerFilterSchemaV3()
2467
+ ),
2468
2468
  });
2469
2469
  }
2470
2470
  }