@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,1162 +1,1164 @@
1
1
  const Joi = require("joi");
2
2
 
3
3
  /**
4
- * @typedef ActionQuery
5
- * @property {string[]} [product_slug] - Contains list of product slug
6
- */
7
-
8
- /**
9
- * @typedef AddCartDetailResponse
10
- * @property {CartDetailResponse} [cart]
11
- * @property {string} [message]
12
- * @property {boolean} [partial] - When adding multiple items check if all
13
- * added. True if only few are added.
14
- * @property {boolean} [success] - True if all items are added successfully.
15
- * False if partially added or not added.
4
+ * @typedef BuyRules
5
+ * @property {Object} [item_criteria] - Item criteria of promotion
6
+ * @property {Object} [cart_conditions] - Cart conditions details for promotion
16
7
  */
17
8
 
18
9
  /**
19
- * @typedef AddCartRequest
20
- * @property {AddProductCart[]} [items]
21
- * @property {boolean} [new_cart]
10
+ * @typedef DiscountRulesApp
11
+ * @property {string[]} [matched_buy_rules] - Matched buy rules for promotion
12
+ * @property {Object} [raw_offer] - Raw offer details for promotion
13
+ * @property {Object} [offer] - Offer for promotion
14
+ * @property {Object} [item_criteria] - Item criteria of promotion
22
15
  */
23
16
 
24
17
  /**
25
- * @typedef AddProductCart
26
- * @property {Object} [_custom_json]
27
- * @property {Object} [article_assignment]
28
- * @property {string} [article_id]
29
- * @property {string} [display]
30
- * @property {Object} [extra_meta]
31
- * @property {number} [item_id]
32
- * @property {string} [item_size]
33
- * @property {Object} [meta]
34
- * @property {Object[]} [parent_item_identifiers]
35
- * @property {boolean} [pos]
36
- * @property {string[]} [product_group_tags]
37
- * @property {number} [quantity]
38
- * @property {number} [seller_id]
39
- * @property {string} [seller_identifier] - Add items using seller identifier for store os
40
- * @property {number} [store_id]
18
+ * @typedef Ownership
19
+ * @property {string} [payable_category] - Promo amount payable category
20
+ * @property {string} [payable_by] - Promo amount bearable party
41
21
  */
42
22
 
43
23
  /**
44
- * @typedef Address
45
- * @property {Object} [_custom_json]
46
- * @property {string} [address]
47
- * @property {string} [address_type]
48
- * @property {string} [area]
49
- * @property {string} [area_code]
50
- * @property {string} [area_code_slug]
51
- * @property {string} [checkout_mode]
52
- * @property {string} [city]
53
- * @property {string} [country]
54
- * @property {string} [country_code]
55
- * @property {string} [country_iso_code]
56
- * @property {string} [country_phone_code]
57
- * @property {string} [created_by_user_id]
58
- * @property {string} [email]
59
- * @property {GeoLocation} [geo_location]
60
- * @property {Object} [google_map_point]
61
- * @property {string} [id]
62
- * @property {boolean} [is_active]
63
- * @property {boolean} [is_default_address]
64
- * @property {string} [landmark]
65
- * @property {Object} [meta]
66
- * @property {string} [name]
67
- * @property {string} [phone]
68
- * @property {string} [sector]
69
- * @property {string} [state]
70
- * @property {string} [state_code] - State code for international address
71
- * @property {string[]} [tags]
72
- * @property {string} [user_id]
24
+ * @typedef FreeGiftItem
25
+ * @property {string} [item_slug] - Item slug
26
+ * @property {string} [item_name] - Item name
27
+ * @property {Object} [item_price_details] - Item price details
28
+ * @property {string} [item_brand_name] - Item brand name
29
+ * @property {number} [item_id] - Item id
30
+ * @property {string[]} [item_images_url] - Item images URL
73
31
  */
74
32
 
75
33
  /**
76
34
  * @typedef AppliedFreeArticles
77
- * @property {string} [article_id] - Free article id
78
35
  * @property {FreeGiftItem} [free_gift_item_details] - Free gift items details
79
36
  * @property {string} [parent_item_identifier] - Parent item identifier for free article
80
37
  * @property {number} [quantity] - Free article quantity
38
+ * @property {string} [article_id] - Free article id
81
39
  */
82
40
 
83
41
  /**
84
42
  * @typedef AppliedPromotion
85
- * @property {number} [amount] - Per unit discount amount applied with current promotion
86
- * @property {AppliedFreeArticles[]} [applied_free_articles] - Applied free
87
- * article for free gift item promotions
88
- * @property {number} [article_quantity] - Quantity of article on which
89
- * promotion is applicable
43
+ * @property {string} [promo_id] - Promotion id
90
44
  * @property {BuyRules[]} [buy_rules] - Buy rules for promotions
91
- * @property {string} [code] - Promotion code
92
- * @property {DiscountRulesApp[]} [discount_rules] - Discount rules for promotions
93
- * @property {Object} [meta] - Meta object for extra data
94
- * @property {boolean} [mrp_promotion] - If applied promotion is applied on
95
- * product MRP or ESP
96
45
  * @property {string} [offer_text] - Offer text of current promotion
97
- * @property {Ownership} [ownership] - Ownership of promotion
98
- * @property {string} [promo_id] - Promotion id
99
46
  * @property {string} [promotion_group] - Promotion group for the promotion
47
+ * @property {boolean} [mrp_promotion] - If applied promotion is applied on
48
+ * product MRP or ESP
100
49
  * @property {string} [promotion_name] - Promotion name of current promotion
50
+ * @property {number} [amount] - Per unit discount amount applied with current promotion
51
+ * @property {DiscountRulesApp[]} [discount_rules] - Discount rules for promotions
52
+ * @property {Ownership} [ownership] - Ownership of promotion
53
+ * @property {number} [article_quantity] - Quantity of article on which
54
+ * promotion is applicable
55
+ * @property {AppliedFreeArticles[]} [applied_free_articles] - Applied free
56
+ * article for free gift item promotions
101
57
  * @property {string} [promotion_type] - Promotion type of current promotion
58
+ * @property {Object} [meta] - Meta object for extra data
59
+ * @property {string} [code] - Promotion code
102
60
  */
103
61
 
104
62
  /**
105
- * @typedef ApplyCouponRequest
106
- * @property {string} coupon_code - Coupon code to be applied
107
- */
108
-
109
- /**
110
- * @typedef ArticleGiftDetail
111
- * @property {GiftDetail} [article_id]
63
+ * @typedef PaymentSelectionLock
64
+ * @property {boolean} [enabled]
65
+ * @property {string} [default_options]
66
+ * @property {string} [payment_identifier]
112
67
  */
113
68
 
114
69
  /**
115
- * @typedef ArticlePriceInfo
116
- * @property {BasePrice} [base]
117
- * @property {BasePrice} [converted]
70
+ * @typedef PromiseFormatted
71
+ * @property {string} [max]
72
+ * @property {string} [min]
118
73
  */
119
74
 
120
75
  /**
121
- * @typedef BaseInfo
122
- * @property {string} [name]
123
- * @property {number} [uid]
76
+ * @typedef PromiseISOFormat
77
+ * @property {string} [max] - Max promise in ISO format.
78
+ * @property {string} [min] - Min Promise in ISO format.
124
79
  */
125
80
 
126
81
  /**
127
- * @typedef BasePrice
128
- * @property {string} [currency_code]
129
- * @property {string} [currency_symbol]
130
- * @property {number} [effective]
131
- * @property {number} [marked]
82
+ * @typedef PromiseTimestamp
83
+ * @property {number} [max]
84
+ * @property {number} [min]
132
85
  */
133
86
 
134
87
  /**
135
- * @typedef BulkPriceOffer
136
- * @property {OfferItem[]} [offers]
137
- * @property {OfferSeller} [seller]
88
+ * @typedef ShipmentPromise
89
+ * @property {PromiseFormatted} [formatted]
90
+ * @property {PromiseTimestamp} [timestamp]
91
+ * @property {PromiseISOFormat} [iso]
138
92
  */
139
93
 
140
94
  /**
141
- * @typedef BulkPriceResponse
142
- * @property {BulkPriceOffer[]} [data] - Consist of offers from multiple seller
95
+ * @typedef BasePrice
96
+ * @property {number} [effective]
97
+ * @property {string} [currency_symbol]
98
+ * @property {number} [marked]
99
+ * @property {string} [currency_code]
143
100
  */
144
101
 
145
102
  /**
146
- * @typedef BuyRules
147
- * @property {Object} [cart_conditions] - Cart conditions details for promotion
148
- * @property {Object} [item_criteria] - Item criteria of promotion
103
+ * @typedef ArticlePriceInfo
104
+ * @property {BasePrice} [base]
105
+ * @property {BasePrice} [converted]
149
106
  */
150
107
 
151
108
  /**
152
- * @typedef CartBreakup
153
- * @property {CouponBreakup} [coupon]
154
- * @property {DisplayBreakup[]} [display]
155
- * @property {LoyaltyPoints} [loyalty_points]
156
- * @property {RawBreakup} [raw]
109
+ * @typedef BaseInfo
110
+ * @property {number} [uid]
111
+ * @property {string} [name]
157
112
  */
158
113
 
159
114
  /**
160
- * @typedef CartCheckoutCustomMeta
161
- * @property {string} key
162
- * @property {string} value
115
+ * @typedef StoreInfo
116
+ * @property {string} [store_code]
117
+ * @property {number} [uid]
118
+ * @property {string} [name]
163
119
  */
164
120
 
165
121
  /**
166
- * @typedef CartCheckoutDetailRequest
167
- * @property {string} [address_id]
168
- * @property {string} [aggregator]
169
- * @property {Object} [billing_address]
170
- * @property {string} [billing_address_id]
171
- * @property {string} [callback_url]
172
- * @property {CartCheckoutCustomMeta[]} [custom_meta]
173
- * @property {Object} [customer_details] - Customer details
174
- * @property {Object} [delivery_address]
122
+ * @typedef ProductArticle
123
+ * @property {ArticlePriceInfo} [price]
124
+ * @property {string[]} [product_group_tags]
175
125
  * @property {Object} [extra_meta]
176
- * @property {string} [id]
177
- * @property {string} [merchant_code]
126
+ * @property {number} [quantity]
127
+ * @property {Object} [_custom_json]
178
128
  * @property {Object} [meta]
179
- * @property {string} [order_type]
180
- * @property {number} [ordering_store]
181
- * @property {boolean} [payment_auto_confirm]
182
- * @property {Object} [payment_extra_identifiers]
183
- * @property {string} [payment_identifier]
184
- * @property {string} payment_mode
185
- * @property {Object} [payment_params]
186
- * @property {StaffCheckout} [staff]
129
+ * @property {string} [size]
130
+ * @property {number} [mto_quantity]
131
+ * @property {BaseInfo} [seller]
132
+ * @property {string} [seller_identifier]
133
+ * @property {Object} [parent_item_identifiers]
134
+ * @property {Object} [identifier]
135
+ * @property {StoreInfo} [store]
136
+ * @property {Object} [cart_item_meta]
137
+ * @property {string} [uid]
138
+ * @property {Object} [gift_card]
139
+ * @property {boolean} [is_gift_visible]
140
+ * @property {string} [type]
141
+ * @property {string[]} [tags] - A list of article tags
187
142
  */
188
143
 
189
144
  /**
190
- * @typedef CartCheckoutDetailV2Request
191
- * @property {string} [address_id]
192
- * @property {string} [aggregator]
193
- * @property {Object} [billing_address]
194
- * @property {string} [billing_address_id]
195
- * @property {string} [callback_url]
196
- * @property {string} [cart_id]
197
- * @property {Object} [custom_meta]
198
- * @property {Object} [customer_details] - Customer details
199
- * @property {Object} [delivery_address]
200
- * @property {Object} [extra_meta]
201
- * @property {string} [id]
202
- * @property {string} [merchant_code]
203
- * @property {Object} [meta]
204
- * @property {string} [order_type]
205
- * @property {number} [ordering_store]
206
- * @property {boolean} [payment_auto_confirm]
207
- * @property {string} [payment_identifier]
208
- * @property {PaymentMethod[]} payment_methods
209
- * @property {string} payment_mode
210
- * @property {Object} [payment_params]
211
- * @property {StaffCheckout} [staff]
145
+ * @typedef CartProductIdentifer
146
+ * @property {string} [identifier] - Article idenfier generated by cart
212
147
  */
213
148
 
214
149
  /**
215
- * @typedef CartCheckoutResponse
216
- * @property {string} [app_intercept_url]
217
- * @property {string} [callback_url]
218
- * @property {CheckCart} [cart]
219
- * @property {Object} [data]
150
+ * @typedef PromoMeta
220
151
  * @property {string} [message]
221
- * @property {string} [order_id]
222
- * @property {string} [payment_confirm_url]
223
- * @property {boolean} [success]
224
152
  */
225
153
 
226
154
  /**
227
- * @typedef CartCommonConfig
228
- * @property {DeliveryChargesConfig} [delivery_charges_config]
229
- */
230
-
231
- /**
232
- * @typedef CartCurrency
233
- * @property {string} [code] - Currency code defined by ISO 4217:2015
234
- * @property {string} [symbol]
155
+ * @typedef ChargesAmount
156
+ * @property {number} [value] - This is the value of amount added
157
+ * @property {string} [currency] - This is destination currency of value
235
158
  */
236
159
 
237
160
  /**
238
- * @typedef CartDetailCoupon
239
- * @property {number} [cashback_amount]
240
- * @property {string} [cashback_message_primary]
241
- * @property {string} [cashback_message_secondary]
242
- * @property {string} [coupon_code]
243
- * @property {string} [coupon_description]
244
- * @property {string} [coupon_id]
245
- * @property {string} [coupon_subtitle]
246
- * @property {string} [coupon_title]
247
- * @property {string} [coupon_type]
248
- * @property {number} [coupon_value]
249
- * @property {number} [discount]
250
- * @property {boolean} [is_applied]
251
- * @property {boolean} [is_valid]
252
- * @property {number} [maximum_discount_value]
253
- * @property {string} [message]
254
- * @property {number} [minimum_cart_value]
161
+ * @typedef Charges
162
+ * @property {Object} [meta] - This object contains the meta data realted to
163
+ * charges price adjustment
164
+ * @property {ChargesAmount} [amount]
165
+ * @property {string} [name] - This is the name of the charge applied
166
+ * @property {boolean} [allow_refund] - This boolean value defines that refund
167
+ * is allowed or not for the charge
168
+ * @property {string} [code] - This is the code of the charge applied
169
+ * @property {string} [type] - This is the type of the charge applied
255
170
  */
256
171
 
257
172
  /**
258
- * @typedef CartDetailResponse
259
- * @property {AppliedPromotion[]} [applied_promo_details]
260
- * @property {CartBreakup} [breakup_values]
261
- * @property {boolean} [buy_now]
262
- * @property {number} [cart_id]
263
- * @property {string} [checkout_mode]
264
- * @property {string} [comment]
265
- * @property {CartCommonConfig} [common_config]
266
- * @property {CartDetailCoupon} [coupon]
267
- * @property {string} [coupon_text]
268
- * @property {CartCurrency} [currency]
269
- * @property {string} [delivery_charge_info]
270
- * @property {ShipmentPromise} [delivery_promise]
271
- * @property {string} [gstin]
272
- * @property {string} [id]
273
- * @property {boolean} [is_valid]
274
- * @property {CartProductInfo[]} [items]
275
- * @property {string} [last_modified]
276
- * @property {string} [message]
277
- * @property {Object} [notification]
278
- * @property {Object} [pan_config]
279
- * @property {string} [pan_no]
280
- * @property {PaymentSelectionLock} [payment_selection_lock]
281
- * @property {boolean} [restrict_checkout]
282
- * @property {string} [staff_user_id]
283
- * @property {boolean} [success]
284
- * @property {string} [uid]
173
+ * @typedef ProductPrice
174
+ * @property {string} [currency_symbol]
175
+ * @property {number} [selling]
176
+ * @property {string} [currency_code]
177
+ * @property {number} [add_on]
178
+ * @property {number} [effective]
179
+ * @property {number} [marked]
285
180
  */
286
181
 
287
182
  /**
288
- * @typedef CartItemCountResponse
289
- * @property {number} [user_cart_items_count] - Item count present in cart
183
+ * @typedef ProductPriceInfo
184
+ * @property {ProductPrice} [base]
185
+ * @property {ProductPrice} [converted]
290
186
  */
291
187
 
292
188
  /**
293
- * @typedef CartMetaMissingResponse
294
- * @property {string[]} [errors]
189
+ * @typedef ProductPricePerUnit
190
+ * @property {string} [currency_symbol]
191
+ * @property {number} [selling_price]
192
+ * @property {string} [currency_code]
193
+ * @property {number} [add_on]
194
+ * @property {number} [effective]
195
+ * @property {number} [marked]
295
196
  */
296
197
 
297
198
  /**
298
- * @typedef CartMetaRequest
299
- * @property {string} [checkout_mode]
300
- * @property {string} [comment]
301
- * @property {Object} [delivery_slots]
302
- * @property {ArticleGiftDetail} [gift_details]
303
- * @property {string} [gstin]
304
- * @property {Object} [pick_up_customer_details] - Customer contact details for
305
- * customer pickup at store
199
+ * @typedef ProductPricePerUnitInfo
200
+ * @property {ProductPricePerUnit} [base]
201
+ * @property {ProductPricePerUnit} [converted]
306
202
  */
307
203
 
308
204
  /**
309
- * @typedef CartMetaResponse
205
+ * @typedef ProductAvailabilitySize
206
+ * @property {string} [display]
207
+ * @property {string} [value]
208
+ * @property {boolean} [is_available]
209
+ */
210
+
211
+ /**
212
+ * @typedef ProductAvailability
213
+ * @property {boolean} [out_of_stock]
214
+ * @property {boolean} [deliverable]
215
+ * @property {ProductAvailabilitySize[]} [available_sizes]
310
216
  * @property {boolean} [is_valid]
311
- * @property {string} [message]
217
+ * @property {number} [other_store_quantity]
218
+ * @property {string[]} [sizes]
219
+ */
220
+
221
+ /**
222
+ * @typedef ActionQuery
223
+ * @property {string[]} [product_slug] - Contains list of product slug
224
+ */
225
+
226
+ /**
227
+ * @typedef ProductAction
228
+ * @property {ActionQuery} [query]
229
+ * @property {string} [url]
230
+ * @property {string} [type]
231
+ */
232
+
233
+ /**
234
+ * @typedef Tags
235
+ * @property {Object} [tags]
236
+ */
237
+
238
+ /**
239
+ * @typedef ProductImage
240
+ * @property {string} [secure_url]
241
+ * @property {string} [aspect_ratio]
242
+ * @property {string} [url]
243
+ */
244
+
245
+ /**
246
+ * @typedef CategoryInfo
247
+ * @property {number} [uid] - Product Category Id
248
+ * @property {string} [name]
312
249
  */
313
250
 
314
251
  /**
315
252
  * @typedef CartProduct
316
253
  * @property {Object} [_custom_json]
317
- * @property {ProductAction} [action]
318
- * @property {Object} [attributes]
319
254
  * @property {BaseInfo} [brand]
320
- * @property {CategoryInfo[]} [categories]
321
- * @property {ProductImage[]} [images]
322
- * @property {string} [item_code]
323
- * @property {string} [name]
255
+ * @property {ProductAction} [action]
256
+ * @property {Tags} [teaser_tag]
324
257
  * @property {string} [slug] - Unique product url name generated via product
325
258
  * name and other meta data
259
+ * @property {ProductImage[]} [images]
260
+ * @property {number} [uid]
261
+ * @property {string} [name]
262
+ * @property {string} [item_code]
263
+ * @property {CategoryInfo[]} [categories]
326
264
  * @property {string[]} [tags]
327
- * @property {Tags} [teaser_tag]
328
265
  * @property {string} [type]
329
- * @property {number} [uid]
266
+ * @property {Object} [attributes]
330
267
  */
331
268
 
332
269
  /**
333
- * @typedef CartProductIdentifer
334
- * @property {string} [identifier] - Article idenfier generated by cart
270
+ * @typedef CouponDetails
271
+ * @property {number} [discount_single_quantity]
272
+ * @property {string} [code]
273
+ * @property {number} [discount_total_quantity]
335
274
  */
336
275
 
337
276
  /**
338
277
  * @typedef CartProductInfo
339
278
  * @property {ProductArticle} [article]
279
+ * @property {Object} [moq]
280
+ * @property {CartProductIdentifer} identifiers
281
+ * @property {PromoMeta} [promo_meta]
282
+ * @property {ProductPriceInfo} [price]
283
+ * @property {number} [quantity]
284
+ * @property {Charges[]} [charges]
285
+ * @property {string} [discount]
340
286
  * @property {ProductAvailability} [availability]
287
+ * @property {ShipmentPromise} [delivery_promise]
288
+ * @property {CartProduct} [product]
289
+ * @property {string} [product_ean_id]
341
290
  * @property {Object} [bulk_offer]
342
- * @property {Charges[]} [charges]
291
+ * @property {Object} [parent_item_identifiers]
343
292
  * @property {CouponDetails} [coupon]
344
- * @property {string} [coupon_message]
345
293
  * @property {Object} [custom_order]
346
- * @property {ShipmentPromise} [delivery_promise]
347
- * @property {string} [discount]
348
- * @property {CartProductIdentifer} identifiers
349
- * @property {boolean} [is_set]
294
+ * @property {string} [coupon_message]
350
295
  * @property {string} [key]
351
296
  * @property {string} [message]
352
- * @property {Object} [moq]
353
- * @property {Object} [parent_item_identifiers]
354
- * @property {ProductPriceInfo} [price]
297
+ * @property {boolean} [is_set]
355
298
  * @property {ProductPricePerUnitInfo} [price_per_unit]
356
- * @property {CartProduct} [product]
357
- * @property {string} [product_ean_id]
358
- * @property {PromoMeta} [promo_meta]
359
299
  * @property {AppliedPromotion[]} [promotions_applied]
360
- * @property {number} [quantity]
361
300
  */
362
301
 
363
302
  /**
364
- * @typedef CartShipmentsResponse
365
- * @property {CartBreakup} [breakup_values]
366
- * @property {boolean} [buy_now]
367
- * @property {number} [cart_id]
368
- * @property {string} [checkout_mode]
369
- * @property {string} [comment]
370
- * @property {string} [coupon_text]
371
- * @property {CartCurrency} [currency]
372
- * @property {string} [delivery_charge_info]
373
- * @property {ShipmentPromise} [delivery_promise]
374
- * @property {boolean} [error]
375
- * @property {string} [gstin]
376
- * @property {string} [id]
377
- * @property {boolean} [is_valid]
378
- * @property {string} [last_modified]
379
- * @property {string} [message]
380
- * @property {PaymentSelectionLock} [payment_selection_lock]
381
- * @property {boolean} [restrict_checkout]
382
- * @property {ShipmentResponse[]} [shipments]
383
- * @property {string} [uid]
303
+ * @typedef DisplayBreakup
304
+ * @property {string} [currency_symbol]
305
+ * @property {string} [key]
306
+ * @property {string} [display]
307
+ * @property {string[]} [message]
308
+ * @property {string} [currency_code]
309
+ * @property {number} [value]
310
+ * @property {number} [preset]
384
311
  */
385
312
 
386
313
  /**
387
- * @typedef CategoryInfo
388
- * @property {string} [name]
389
- * @property {number} [uid] - Product Category Id
314
+ * @typedef RawBreakup
315
+ * @property {number} [vog]
316
+ * @property {number} [subtotal]
317
+ * @property {number} [fynd_cash]
318
+ * @property {number} [discount]
319
+ * @property {number} [convenience_fee]
320
+ * @property {number} [delivery_charge]
321
+ * @property {number} [gst_charges]
322
+ * @property {number} [mrp_total]
323
+ * @property {number} [mop_total]
324
+ * @property {number} [total_charge]
325
+ * @property {number} [coupon]
326
+ * @property {number} [total]
327
+ * @property {number} [gift_card]
328
+ * @property {number} [you_saved]
329
+ * @property {number} [cod_charge]
390
330
  */
391
331
 
392
332
  /**
393
- * @typedef Charges
394
- * @property {boolean} [allow_refund] - This boolean value defines that refund
395
- * is allowed or not for the charge
396
- * @property {ChargesAmount} [amount]
397
- * @property {string} [code] - This is the code of the charge applied
398
- * @property {Object} [meta] - This object contains the meta data realted to
399
- * charges price adjustment
400
- * @property {string} [name] - This is the name of the charge applied
401
- * @property {string} [type] - This is the type of the charge applied
333
+ * @typedef CouponBreakup
334
+ * @property {number} [coupon_value]
335
+ * @property {string} [title]
336
+ * @property {string} [sub_title]
337
+ * @property {number} [minimum_cart_value]
338
+ * @property {string} [message]
339
+ * @property {string} [coupon_type]
340
+ * @property {string} [uid]
341
+ * @property {number} [value]
342
+ * @property {number} [max_discount_value]
343
+ * @property {boolean} [is_applied]
344
+ * @property {string} [description]
345
+ * @property {string} [code]
346
+ * @property {string} [type]
402
347
  */
403
348
 
404
349
  /**
405
- * @typedef ChargesAmount
406
- * @property {string} [currency] - This is destination currency of value
407
- * @property {number} [value] - This is the value of amount added
350
+ * @typedef LoyaltyPoints
351
+ * @property {number} [total]
352
+ * @property {string} [description]
353
+ * @property {number} [applicable]
354
+ * @property {boolean} [is_applied]
408
355
  */
409
356
 
410
357
  /**
411
- * @typedef ChargesThreshold
412
- * @property {number} [charges]
413
- * @property {number} [threshold]
414
- */
415
-
358
+ * @typedef CartBreakup
359
+ * @property {DisplayBreakup[]} [display]
360
+ * @property {RawBreakup} [raw]
361
+ * @property {CouponBreakup} [coupon]
362
+ * @property {LoyaltyPoints} [loyalty_points]
363
+ */
364
+
416
365
  /**
417
- * @typedef CheckCart
418
- * @property {CartBreakup} [breakup_values]
419
- * @property {boolean} [buy_now]
420
- * @property {number} [cart_id]
421
- * @property {string} [checkout_mode]
422
- * @property {boolean} [cod_available]
423
- * @property {number} [cod_charges]
424
- * @property {string} [cod_message]
425
- * @property {string} [comment]
426
- * @property {string} [coupon_text]
427
- * @property {CartCurrency} [currency]
428
- * @property {string} [delivery_charge_info]
429
- * @property {number} [delivery_charge_order_value]
430
- * @property {number} [delivery_charges]
431
- * @property {ShipmentPromise} [delivery_promise]
432
- * @property {string} [error_message]
433
- * @property {string} [gstin]
434
- * @property {string} [id]
435
- * @property {boolean} [is_valid]
436
- * @property {CartProductInfo[]} [items]
437
- * @property {string} [last_modified]
438
- * @property {string} [message]
439
- * @property {string} [order_id]
440
- * @property {PaymentSelectionLock} [payment_selection_lock]
441
- * @property {boolean} [restrict_checkout]
442
- * @property {string} [store_code]
443
- * @property {Object[]} [store_emps]
444
- * @property {boolean} [success]
445
- * @property {string} [uid]
446
- * @property {string} [user_type]
366
+ * @typedef CartCurrency
367
+ * @property {string} [code] - Currency code defined by ISO 4217:2015
368
+ * @property {string} [symbol]
447
369
  */
448
370
 
449
371
  /**
450
- * @typedef Coupon
451
- * @property {number} [coupon_amount] - The amount based on cart value
452
- * @property {string} [coupon_applicable_message]
372
+ * @typedef CartDetailCoupon
373
+ * @property {number} [cashback_amount]
374
+ * @property {string} [cashback_message_primary]
375
+ * @property {string} [cashback_message_secondary]
453
376
  * @property {string} [coupon_code]
377
+ * @property {string} [coupon_description]
378
+ * @property {string} [coupon_id]
379
+ * @property {string} [coupon_subtitle]
380
+ * @property {string} [coupon_title]
454
381
  * @property {string} [coupon_type]
455
382
  * @property {number} [coupon_value]
456
- * @property {string} [description]
457
- * @property {string} [end_date]
458
- * @property {string} [expires_on]
459
- * @property {boolean} [is_applicable]
383
+ * @property {number} [discount]
460
384
  * @property {boolean} [is_applied]
461
- * @property {number} [max_discount_value]
385
+ * @property {boolean} [is_valid]
386
+ * @property {number} [maximum_discount_value]
462
387
  * @property {string} [message]
463
388
  * @property {number} [minimum_cart_value]
464
- * @property {string} [start_date]
465
- * @property {string} [sub_title]
466
- * @property {string} [title]
467
389
  */
468
390
 
469
391
  /**
470
- * @typedef CouponBreakup
471
- * @property {string} [code]
472
- * @property {string} [coupon_type]
473
- * @property {number} [coupon_value]
474
- * @property {string} [description]
475
- * @property {boolean} [is_applied]
476
- * @property {number} [max_discount_value]
477
- * @property {string} [message]
478
- * @property {number} [minimum_cart_value]
479
- * @property {string} [sub_title]
480
- * @property {string} [title]
481
- * @property {string} [type]
482
- * @property {string} [uid]
483
- * @property {number} [value]
392
+ * @typedef ChargesThreshold
393
+ * @property {number} [charges]
394
+ * @property {number} [threshold]
484
395
  */
485
396
 
486
397
  /**
487
- * @typedef CouponDetails
488
- * @property {string} [code]
489
- * @property {number} [discount_single_quantity]
490
- * @property {number} [discount_total_quantity]
398
+ * @typedef DeliveryChargesConfig
399
+ * @property {boolean} [enabled]
400
+ * @property {ChargesThreshold[]} [charges]
491
401
  */
492
402
 
493
403
  /**
494
- * @typedef CouponValidity
495
- * @property {string} [code]
496
- * @property {number} [discount]
497
- * @property {string} [display_message_en]
498
- * @property {boolean} [next_validation_required]
499
- * @property {string} [title]
500
- * @property {boolean} [valid]
404
+ * @typedef CartCommonConfig
405
+ * @property {DeliveryChargesConfig} [delivery_charges_config]
501
406
  */
502
407
 
503
408
  /**
504
- * @typedef CurrencyInfo
505
- * @property {string} [code]
506
- * @property {string} [symbol]
409
+ * @typedef CartDetailResponse
410
+ * @property {number} [cart_id]
411
+ * @property {string} [uid]
412
+ * @property {AppliedPromotion[]} [applied_promo_details]
413
+ * @property {string} [checkout_mode]
414
+ * @property {string} [pan_no]
415
+ * @property {boolean} [is_valid]
416
+ * @property {string} [id]
417
+ * @property {PaymentSelectionLock} [payment_selection_lock]
418
+ * @property {ShipmentPromise} [delivery_promise]
419
+ * @property {string} [comment]
420
+ * @property {CartProductInfo[]} [items]
421
+ * @property {string} [delivery_charge_info]
422
+ * @property {CartCommonConfig} [common_config]
423
+ * @property {CartDetailCoupon} [coupon]
424
+ * @property {string} [message]
425
+ * @property {Object} [notification]
426
+ * @property {string} [staff_user_id]
427
+ * @property {boolean} [success]
428
+ * @property {string} [gstin]
429
+ * @property {boolean} [restrict_checkout]
430
+ * @property {string} [last_modified]
431
+ * @property {CartBreakup} [breakup_values]
432
+ * @property {CartCurrency} [currency]
433
+ * @property {string} [coupon_text]
434
+ * @property {boolean} [buy_now]
435
+ * @property {Object} [pan_config]
507
436
  */
508
437
 
509
438
  /**
510
- * @typedef CustomerDetails
511
- * @property {string} [email]
512
- * @property {string} mobile
513
- * @property {string} [name]
439
+ * @typedef AddProductCart
440
+ * @property {Object} [article_assignment]
441
+ * @property {string[]} [product_group_tags]
442
+ * @property {Object} [extra_meta]
443
+ * @property {number} [quantity]
444
+ * @property {Object} [_custom_json]
445
+ * @property {string} [item_size]
446
+ * @property {number} [store_id]
447
+ * @property {string} [display]
448
+ * @property {string} [article_id]
449
+ * @property {Object[]} [parent_item_identifiers]
450
+ * @property {number} [seller_id]
451
+ * @property {boolean} [pos]
452
+ * @property {number} [item_id]
453
+ * @property {Object} [meta]
454
+ * @property {string} [seller_identifier] - Add items using seller identifier for store os
514
455
  */
515
456
 
516
457
  /**
517
- * @typedef DeleteAddressResponse
518
- * @property {string} [id]
519
- * @property {boolean} [is_deleted]
458
+ * @typedef AddCartRequest
459
+ * @property {AddProductCart[]} [items]
460
+ * @property {boolean} [new_cart]
520
461
  */
521
462
 
522
463
  /**
523
- * @typedef DeleteCartDetailResponse
464
+ * @typedef AddCartDetailResponse
524
465
  * @property {string} [message]
525
- * @property {boolean} [success] - True if cart is archived successfully. False
526
- * if not archived.
466
+ * @property {boolean} [partial] - When adding multiple items check if all
467
+ * added. True if only few are added.
468
+ * @property {CartDetailResponse} [cart]
469
+ * @property {boolean} [success] - True if all items are added successfully.
470
+ * False if partially added or not added.
527
471
  */
528
472
 
529
473
  /**
530
- * @typedef DeliveryChargesConfig
531
- * @property {ChargesThreshold[]} [charges]
532
- * @property {boolean} [enabled]
474
+ * @typedef UpdateProductCart
475
+ * @property {Object} [extra_meta]
476
+ * @property {Object} [_custom_json]
477
+ * @property {number} [quantity]
478
+ * @property {string} [item_size]
479
+ * @property {number} [item_index]
480
+ * @property {CartProductIdentifer} identifiers
481
+ * @property {string} [article_id]
482
+ * @property {Object} [parent_item_identifiers]
483
+ * @property {number} [item_id]
484
+ * @property {Object} [meta]
533
485
  */
534
486
 
535
487
  /**
536
- * @typedef DiscountRulesApp
537
- * @property {Object} [item_criteria] - Item criteria of promotion
538
- * @property {string[]} [matched_buy_rules] - Matched buy rules for promotion
539
- * @property {Object} [offer] - Offer for promotion
540
- * @property {Object} [raw_offer] - Raw offer details for promotion
488
+ * @typedef UpdateCartRequest
489
+ * @property {UpdateProductCart[]} [items]
490
+ * @property {string} operation
541
491
  */
542
492
 
543
493
  /**
544
- * @typedef DisplayBreakup
545
- * @property {string} [currency_code]
546
- * @property {string} [currency_symbol]
547
- * @property {string} [display]
548
- * @property {string} [key]
549
- * @property {string[]} [message]
550
- * @property {number} [preset]
551
- * @property {number} [value]
494
+ * @typedef UpdateCartDetailResponse
495
+ * @property {string} [message]
496
+ * @property {CartDetailResponse} [cart]
497
+ * @property {boolean} [success] - True if all items are added successfully.
498
+ * False if partially added or not added.
552
499
  */
553
500
 
554
501
  /**
555
- * @typedef FreeGiftItem
556
- * @property {string} [item_brand_name] - Item brand name
557
- * @property {number} [item_id] - Item id
558
- * @property {string[]} [item_images_url] - Item images URL
559
- * @property {string} [item_name] - Item name
560
- * @property {Object} [item_price_details] - Item price details
561
- * @property {string} [item_slug] - Item slug
502
+ * @typedef DeleteCartDetailResponse
503
+ * @property {string} [message]
504
+ * @property {boolean} [success] - True if cart is archived successfully. False
505
+ * if not archived.
562
506
  */
563
507
 
564
508
  /**
565
- * @typedef FreeGiftItems
566
- * @property {string} [item_brand_name] - Item brand name
567
- * @property {number} [item_id] - Item id
568
- * @property {string[]} [item_images_url] - Item images URL
569
- * @property {string} [item_name] - Item name
570
- * @property {Object} [item_price_details] - Item price details
571
- * @property {string} [item_slug] - Item slug
509
+ * @typedef CartItemCountResponse
510
+ * @property {number} [user_cart_items_count] - Item count present in cart
572
511
  */
573
512
 
574
513
  /**
575
- * @typedef GeoLocation
576
- * @property {number} [latitude]
577
- * @property {number} [longitude]
514
+ * @typedef PageCoupon
515
+ * @property {number} [total_item_count]
516
+ * @property {boolean} [has_next]
517
+ * @property {number} [total]
518
+ * @property {number} [current]
519
+ * @property {boolean} [has_previous]
578
520
  */
579
521
 
580
522
  /**
581
- * @typedef GetAddressesResponse
582
- * @property {Address[]} [address]
583
- * @property {boolean} [pii_masking]
523
+ * @typedef Coupon
524
+ * @property {number} [coupon_amount] - The amount based on cart value
525
+ * @property {number} [coupon_value]
526
+ * @property {string} [title]
527
+ * @property {number} [minimum_cart_value]
528
+ * @property {string} [sub_title]
529
+ * @property {string} [expires_on]
530
+ * @property {string} [message]
531
+ * @property {string} [coupon_type]
532
+ * @property {number} [max_discount_value]
533
+ * @property {string} [coupon_code]
534
+ * @property {boolean} [is_applicable]
535
+ * @property {string} [description]
536
+ * @property {boolean} [is_applied]
537
+ * @property {string} [start_date]
538
+ * @property {string} [end_date]
539
+ * @property {string} [coupon_applicable_message]
584
540
  */
585
541
 
586
542
  /**
587
543
  * @typedef GetCouponResponse
588
- * @property {Coupon[]} [available_coupon_list]
589
544
  * @property {PageCoupon} [page]
545
+ * @property {Coupon[]} [available_coupon_list]
590
546
  */
591
547
 
592
548
  /**
593
- * @typedef GetShareCartLinkRequest
594
- * @property {string} [id] - Cart uid for generating sharing
595
- * @property {Object} [meta] - Staff, Ordering store or any other data. This
596
- * data will be used to generate link as well as sent as shared details.
549
+ * @typedef ApplyCouponRequest
550
+ * @property {string} coupon_code - Coupon code to be applied
597
551
  */
598
552
 
599
553
  /**
600
- * @typedef GetShareCartLinkResponse
601
- * @property {string} [share_url] - Short shareable final url
602
- * @property {string} [token] - Short url unique id
603
- */
604
-
605
- /**
606
- * @typedef GiftDetail
607
- * @property {string} [gift_message]
608
- * @property {boolean} [is_gift_applied]
554
+ * @typedef OfferPrice
555
+ * @property {string} [currency_symbol] - Currency symbol for currency
556
+ * @property {number} [bulk_effective] - Discounted per unit price for current
557
+ * offer object
558
+ * @property {string} [currency_code] - Currency code for all amounts
559
+ * @property {number} [effective] - Current per unit price of product after
560
+ * existing deductions
561
+ * @property {number} [marked] - Original price of product
609
562
  */
610
563
 
611
564
  /**
612
- * @typedef LadderOfferItem
565
+ * @typedef OfferItem
566
+ * @property {OfferPrice} [price]
613
567
  * @property {number} [margin] - Percentage value of discount
614
- * @property {number} [max_quantity] - Minimum quantity upto which offer is
615
- * applicable. If not present that offer is applicable on all quantities
616
- * @property {number} [min_quantity] - Minimum quantity from which offer is applicable
617
- * @property {LadderPrice} [price]
568
+ * @property {number} [quantity] - Quantity on which offer is applicable
569
+ * @property {boolean} [best] - Is true for best offer from all offers present
570
+ * for all sellers
571
+ * @property {number} [total] - Total price of offer quantity with discount
572
+ * @property {boolean} [auto_applied] - Whether offer discount is auto applied in cart
618
573
  * @property {string} [type] - Offer type
619
574
  */
620
575
 
621
576
  /**
622
- * @typedef LadderPrice
623
- * @property {string} [currency_code] - Currency code for all amounts
624
- * @property {string} [currency_symbol] - Currency symbol for currency
625
- * @property {number} [effective] - Current per unit price of product after
626
- * existing deductions
627
- * @property {number} [marked] - Original price of product
628
- * @property {number} [offer_price] - Discounted per unit price for current offer object
577
+ * @typedef OfferSeller
578
+ * @property {number} [uid] - Seller id
579
+ * @property {string} [name]
629
580
  */
630
581
 
631
582
  /**
632
- * @typedef LadderPriceOffer
633
- * @property {Object} [buy_rules] - Buy rules of promotions
634
- * @property {string} [calculate_on] - If this ladder offer is to be calculated
635
- * on MRP or ESP price
636
- * @property {string} [description] - Offer details including T&C
637
- * @property {Object[]} [discount_rules] - Discount rules of promotions
638
- * @property {FreeGiftItems[]} [free_gift_items] - Details of free gift items
639
- * @property {string} [id] - Promotion id
640
- * @property {LadderOfferItem[]} [offer_prices]
641
- * @property {string} [offer_text] - Offer title
642
- * @property {string} [promotion_group] - Group of promotion belongs to
643
- * @property {string} [valid_till] - Datetime ISOString for promotion end date
583
+ * @typedef BulkPriceOffer
584
+ * @property {OfferItem[]} [offers]
585
+ * @property {OfferSeller} [seller]
644
586
  */
645
587
 
646
588
  /**
647
- * @typedef LadderPriceOffers
648
- * @property {LadderPriceOffer[]} [available_offers]
649
- * @property {CurrencyInfo} [currency]
589
+ * @typedef BulkPriceResponse
590
+ * @property {BulkPriceOffer[]} [data] - Consist of offers from multiple seller
650
591
  */
651
592
 
652
593
  /**
653
- * @typedef LoyaltyPoints
654
- * @property {number} [applicable]
655
- * @property {string} [description]
656
- * @property {boolean} [is_applied]
657
- * @property {number} [total]
594
+ * @typedef RewardPointRequest
595
+ * @property {boolean} points
658
596
  */
659
597
 
660
598
  /**
661
- * @typedef OfferItem
662
- * @property {boolean} [auto_applied] - Whether offer discount is auto applied in cart
663
- * @property {boolean} [best] - Is true for best offer from all offers present
664
- * for all sellers
665
- * @property {number} [margin] - Percentage value of discount
666
- * @property {OfferPrice} [price]
667
- * @property {number} [quantity] - Quantity on which offer is applicable
668
- * @property {number} [total] - Total price of offer quantity with discount
669
- * @property {string} [type] - Offer type
599
+ * @typedef GeoLocation
600
+ * @property {number} [latitude]
601
+ * @property {number} [longitude]
670
602
  */
671
603
 
672
604
  /**
673
- * @typedef OfferPrice
674
- * @property {number} [bulk_effective] - Discounted per unit price for current
675
- * offer object
676
- * @property {string} [currency_code] - Currency code for all amounts
677
- * @property {string} [currency_symbol] - Currency symbol for currency
678
- * @property {number} [effective] - Current per unit price of product after
679
- * existing deductions
680
- * @property {number} [marked] - Original price of product
605
+ * @typedef Address
606
+ * @property {string} [country_iso_code]
607
+ * @property {string} [area]
608
+ * @property {string} [phone]
609
+ * @property {string} [country_phone_code]
610
+ * @property {string} [checkout_mode]
611
+ * @property {string} [address]
612
+ * @property {string} [area_code_slug]
613
+ * @property {GeoLocation} [geo_location]
614
+ * @property {string} [id]
615
+ * @property {Object} [_custom_json]
616
+ * @property {string} [city]
617
+ * @property {string} [sector]
618
+ * @property {string} [state_code] - State code for international address
619
+ * @property {string} [created_by_user_id]
620
+ * @property {string} [landmark]
621
+ * @property {string} [user_id]
622
+ * @property {string} [name]
623
+ * @property {Object} [google_map_point]
624
+ * @property {boolean} [is_active]
625
+ * @property {string[]} [tags]
626
+ * @property {string} [country_code]
627
+ * @property {string} [address_type]
628
+ * @property {string} [country]
629
+ * @property {boolean} [is_default_address]
630
+ * @property {string} [area_code]
631
+ * @property {string} [email]
632
+ * @property {string} [state]
633
+ * @property {Object} [meta]
681
634
  */
682
635
 
683
636
  /**
684
- * @typedef OfferSeller
685
- * @property {string} [name]
686
- * @property {number} [uid] - Seller id
637
+ * @typedef GetAddressesResponse
638
+ * @property {boolean} [pii_masking]
639
+ * @property {Address[]} [address]
687
640
  */
688
641
 
689
642
  /**
690
- * @typedef OperationErrorResponse
691
- * @property {string} [message]
643
+ * @typedef SaveAddressResponse
644
+ * @property {string} [id]
692
645
  * @property {boolean} [success]
646
+ * @property {boolean} [is_default_address]
693
647
  */
694
648
 
695
649
  /**
696
- * @typedef Ownership
697
- * @property {string} [payable_by] - Promo amount bearable party
698
- * @property {string} [payable_category] - Promo amount payable category
650
+ * @typedef UpdateAddressResponse
651
+ * @property {boolean} [is_updated]
652
+ * @property {string} [id]
653
+ * @property {boolean} [success]
654
+ * @property {boolean} [is_default_address]
699
655
  */
700
656
 
701
657
  /**
702
- * @typedef PageCoupon
703
- * @property {number} [current]
704
- * @property {boolean} [has_next]
705
- * @property {boolean} [has_previous]
706
- * @property {number} [total]
707
- * @property {number} [total_item_count]
658
+ * @typedef DeleteAddressResponse
659
+ * @property {string} [id]
660
+ * @property {boolean} [is_deleted]
708
661
  */
709
662
 
710
663
  /**
711
- * @typedef PaymentCouponValidate
712
- * @property {CouponValidity} [coupon_validity]
713
- * @property {string} [message]
714
- * @property {boolean} success
664
+ * @typedef SelectCartAddressRequest
665
+ * @property {string} [id]
666
+ * @property {string} [billing_address_id]
667
+ * @property {string} [cart_id]
715
668
  */
716
669
 
717
670
  /**
718
- * @typedef PaymentMeta
719
- * @property {string} [merchant_code]
720
- * @property {string} [payment_gateway]
671
+ * @typedef UpdateCartPaymentRequest
672
+ * @property {string} [id]
721
673
  * @property {string} [payment_identifier]
722
- * @property {string} [type]
723
- */
724
-
725
- /**
726
- * @typedef PaymentMethod
727
- * @property {number} [amount]
728
- * @property {string} mode
729
- * @property {string} [name]
730
- * @property {string} [payment]
731
- * @property {Object} [payment_extra_identifiers]
732
- * @property {PaymentMeta} payment_meta
674
+ * @property {string} [address_id]
675
+ * @property {string} [merchant_code]
676
+ * @property {string} [aggregator_name]
677
+ * @property {string} [payment_mode]
733
678
  */
734
679
 
735
680
  /**
736
- * @typedef PaymentSelectionLock
737
- * @property {string} [default_options]
738
- * @property {boolean} [enabled]
739
- * @property {string} [payment_identifier]
681
+ * @typedef CouponValidity
682
+ * @property {string} [title]
683
+ * @property {number} [discount]
684
+ * @property {boolean} [next_validation_required]
685
+ * @property {boolean} [valid]
686
+ * @property {string} [display_message_en]
687
+ * @property {string} [code]
740
688
  */
741
689
 
742
690
  /**
743
- * @typedef ProductAction
744
- * @property {ActionQuery} [query]
745
- * @property {string} [type]
746
- * @property {string} [url]
691
+ * @typedef PaymentCouponValidate
692
+ * @property {string} [message]
693
+ * @property {CouponValidity} [coupon_validity]
694
+ * @property {boolean} success
747
695
  */
748
696
 
749
697
  /**
750
- * @typedef ProductArticle
751
- * @property {Object} [_custom_json]
752
- * @property {Object} [cart_item_meta]
753
- * @property {Object} [extra_meta]
754
- * @property {Object} [gift_card]
755
- * @property {Object} [identifier]
756
- * @property {boolean} [is_gift_visible]
757
- * @property {Object} [meta]
758
- * @property {number} [mto_quantity]
759
- * @property {Object} [parent_item_identifiers]
760
- * @property {ArticlePriceInfo} [price]
761
- * @property {string[]} [product_group_tags]
762
- * @property {number} [quantity]
763
- * @property {BaseInfo} [seller]
764
- * @property {string} [seller_identifier]
765
- * @property {string} [size]
766
- * @property {StoreInfo} [store]
767
- * @property {string[]} [tags] - A list of article tags
768
- * @property {string} [type]
769
- * @property {string} [uid]
698
+ * @typedef ShipmentResponse
699
+ * @property {number} [shipments]
700
+ * @property {ShipmentPromise} [promise]
701
+ * @property {string} [order_type]
702
+ * @property {string} [box_type]
703
+ * @property {string} [shipment_type]
704
+ * @property {Object} [dp_options]
705
+ * @property {string} [dp_id]
706
+ * @property {CartProductInfo[]} [items]
707
+ * @property {string} [fulfillment_type]
708
+ * @property {number} [fulfillment_id]
770
709
  */
771
710
 
772
711
  /**
773
- * @typedef ProductAvailability
774
- * @property {ProductAvailabilitySize[]} [available_sizes]
775
- * @property {boolean} [deliverable]
712
+ * @typedef CartShipmentsResponse
713
+ * @property {string} [delivery_charge_info]
714
+ * @property {string} [checkout_mode]
715
+ * @property {string} [message]
716
+ * @property {string} [gstin]
717
+ * @property {boolean} [restrict_checkout]
718
+ * @property {string} [last_modified]
719
+ * @property {number} [cart_id]
776
720
  * @property {boolean} [is_valid]
777
- * @property {number} [other_store_quantity]
778
- * @property {boolean} [out_of_stock]
779
- * @property {string[]} [sizes]
721
+ * @property {CartBreakup} [breakup_values]
722
+ * @property {CartCurrency} [currency]
723
+ * @property {string} [id]
724
+ * @property {ShipmentResponse[]} [shipments]
725
+ * @property {PaymentSelectionLock} [payment_selection_lock]
726
+ * @property {string} [coupon_text]
727
+ * @property {ShipmentPromise} [delivery_promise]
728
+ * @property {boolean} [error]
729
+ * @property {string} [comment]
730
+ * @property {boolean} [buy_now]
731
+ * @property {string} [uid]
780
732
  */
781
733
 
782
734
  /**
783
- * @typedef ProductAvailabilitySize
784
- * @property {string} [display]
785
- * @property {boolean} [is_available]
786
- * @property {string} [value]
735
+ * @typedef CartCheckoutCustomMeta
736
+ * @property {string} key
737
+ * @property {string} value
787
738
  */
788
739
 
789
740
  /**
790
- * @typedef ProductImage
791
- * @property {string} [aspect_ratio]
792
- * @property {string} [secure_url]
793
- * @property {string} [url]
741
+ * @typedef CustomerDetails
742
+ * @property {string} [email]
743
+ * @property {string} mobile
744
+ * @property {string} [name]
794
745
  */
795
746
 
796
747
  /**
797
- * @typedef ProductPrice
798
- * @property {number} [add_on]
799
- * @property {string} [currency_code]
800
- * @property {string} [currency_symbol]
801
- * @property {number} [effective]
802
- * @property {number} [marked]
803
- * @property {number} [selling]
748
+ * @typedef StaffCheckout
749
+ * @property {string} [employee_code]
750
+ * @property {string} user
751
+ * @property {string} last_name
752
+ * @property {string} first_name
753
+ * @property {string} _id
804
754
  */
805
755
 
806
756
  /**
807
- * @typedef ProductPriceInfo
808
- * @property {ProductPrice} [base]
809
- * @property {ProductPrice} [converted]
757
+ * @typedef CartCheckoutDetailRequest
758
+ * @property {CartCheckoutCustomMeta[]} [custom_meta]
759
+ * @property {Object} [customer_details] - Customer details
760
+ * @property {string} [merchant_code]
761
+ * @property {string} [id]
762
+ * @property {boolean} [payment_auto_confirm]
763
+ * @property {string} payment_mode
764
+ * @property {string} [aggregator]
765
+ * @property {string} [address_id]
766
+ * @property {string} [callback_url]
767
+ * @property {Object} [delivery_address]
768
+ * @property {StaffCheckout} [staff]
769
+ * @property {string} [order_type]
770
+ * @property {number} [ordering_store]
771
+ * @property {Object} [extra_meta]
772
+ * @property {string} [payment_identifier]
773
+ * @property {Object} [billing_address]
774
+ * @property {Object} [payment_params]
775
+ * @property {string} [billing_address_id]
776
+ * @property {Object} [meta]
777
+ * @property {Object} [payment_extra_identifiers]
778
+ * @property {string} [iin]
779
+ * @property {string} [network]
780
+ * @property {string} [type]
781
+ * @property {string} [card_id]
810
782
  */
811
783
 
812
784
  /**
813
- * @typedef ProductPricePerUnit
814
- * @property {number} [add_on]
815
- * @property {string} [currency_code]
816
- * @property {string} [currency_symbol]
817
- * @property {number} [effective]
818
- * @property {number} [marked]
819
- * @property {number} [selling_price]
785
+ * @typedef CheckCart
786
+ * @property {string} [checkout_mode]
787
+ * @property {string} [user_type]
788
+ * @property {string} [cod_message]
789
+ * @property {number} [cart_id]
790
+ * @property {boolean} [is_valid]
791
+ * @property {number} [delivery_charges]
792
+ * @property {string} [id]
793
+ * @property {PaymentSelectionLock} [payment_selection_lock]
794
+ * @property {string} [error_message]
795
+ * @property {ShipmentPromise} [delivery_promise]
796
+ * @property {string} [comment]
797
+ * @property {CartProductInfo[]} [items]
798
+ * @property {string} [uid]
799
+ * @property {number} [delivery_charge_order_value]
800
+ * @property {string} [delivery_charge_info]
801
+ * @property {boolean} [cod_available]
802
+ * @property {boolean} [success]
803
+ * @property {string} [store_code]
804
+ * @property {string} [message]
805
+ * @property {string} [gstin]
806
+ * @property {boolean} [restrict_checkout]
807
+ * @property {string} [last_modified]
808
+ * @property {string} [order_id]
809
+ * @property {CartBreakup} [breakup_values]
810
+ * @property {CartCurrency} [currency]
811
+ * @property {Object[]} [store_emps]
812
+ * @property {string} [coupon_text]
813
+ * @property {boolean} [buy_now]
814
+ * @property {number} [cod_charges]
820
815
  */
821
816
 
822
817
  /**
823
- * @typedef ProductPricePerUnitInfo
824
- * @property {ProductPricePerUnit} [base]
825
- * @property {ProductPricePerUnit} [converted]
818
+ * @typedef CartCheckoutResponse
819
+ * @property {string} [payment_confirm_url]
820
+ * @property {string} [app_intercept_url]
821
+ * @property {boolean} [success]
822
+ * @property {string} [callback_url]
823
+ * @property {string} [message]
824
+ * @property {Object} [data]
825
+ * @property {string} [order_id]
826
+ * @property {CheckCart} [cart]
826
827
  */
827
828
 
828
829
  /**
829
- * @typedef PromiseFormatted
830
- * @property {string} [max]
831
- * @property {string} [min]
830
+ * @typedef GiftDetail
831
+ * @property {boolean} [is_gift_applied]
832
+ * @property {string} [gift_message]
832
833
  */
833
834
 
834
835
  /**
835
- * @typedef PromiseISOFormat
836
- * @property {string} [max] - Max promise in ISO format.
837
- * @property {string} [min] - Min Promise in ISO format.
836
+ * @typedef ArticleGiftDetail
837
+ * @property {GiftDetail} [article_id]
838
838
  */
839
839
 
840
840
  /**
841
- * @typedef PromiseTimestamp
842
- * @property {number} [max]
843
- * @property {number} [min]
841
+ * @typedef CartMetaRequest
842
+ * @property {Object} [delivery_slots]
843
+ * @property {ArticleGiftDetail} [gift_details]
844
+ * @property {Object} [pick_up_customer_details] - Customer contact details for
845
+ * customer pickup at store
846
+ * @property {string} [checkout_mode]
847
+ * @property {string} [comment]
848
+ * @property {string} [gstin]
844
849
  */
845
850
 
846
851
  /**
847
- * @typedef PromoMeta
852
+ * @typedef CartMetaResponse
848
853
  * @property {string} [message]
854
+ * @property {boolean} [is_valid]
849
855
  */
850
856
 
851
857
  /**
852
- * @typedef PromotionOffer
853
- * @property {Object} [buy_rules] - Buy rules of promotions
854
- * @property {string} [description] - Offer details including T&C
855
- * @property {Object[]} [discount_rules] - Discount rules of promotions
856
- * @property {FreeGiftItems[]} [free_gift_items] - Details of free gift items
857
- * @property {string} [id] - Promotion id
858
- * @property {string} [offer_text] - Offer title
859
- * @property {string} [promotion_group] - Group of promotion belongs to
860
- * @property {string} [valid_till] - Datetime ISOString for promotion end date
861
- */
862
-
863
- /**
864
- * @typedef PromotionOffersResponse
865
- * @property {PromotionOffer[]} [available_promotions]
866
- */
867
-
868
- /**
869
- * @typedef RawBreakup
870
- * @property {number} [cod_charge]
871
- * @property {number} [convenience_fee]
872
- * @property {number} [coupon]
873
- * @property {number} [delivery_charge]
874
- * @property {number} [discount]
875
- * @property {number} [fynd_cash]
876
- * @property {number} [gift_card]
877
- * @property {number} [gst_charges]
878
- * @property {number} [mop_total]
879
- * @property {number} [mrp_total]
880
- * @property {number} [subtotal]
881
- * @property {number} [total]
882
- * @property {number} [total_charge]
883
- * @property {number} [vog]
884
- * @property {number} [you_saved]
858
+ * @typedef CartMetaMissingResponse
859
+ * @property {string[]} [errors]
885
860
  */
886
861
 
887
862
  /**
888
- * @typedef RewardPointRequest
889
- * @property {boolean} points
863
+ * @typedef GetShareCartLinkRequest
864
+ * @property {string} [id] - Cart uid for generating sharing
865
+ * @property {Object} [meta] - Staff, Ordering store or any other data. This
866
+ * data will be used to generate link as well as sent as shared details.
890
867
  */
891
868
 
892
869
  /**
893
- * @typedef SaveAddressResponse
894
- * @property {string} [id]
895
- * @property {boolean} [is_default_address]
896
- * @property {boolean} [success]
870
+ * @typedef GetShareCartLinkResponse
871
+ * @property {string} [token] - Short url unique id
872
+ * @property {string} [share_url] - Short shareable final url
897
873
  */
898
874
 
899
875
  /**
900
- * @typedef SelectCartAddressRequest
901
- * @property {string} [billing_address_id]
902
- * @property {string} [cart_id]
903
- * @property {string} [id]
876
+ * @typedef SharedCartDetails
877
+ * @property {string} [token] - Short link id
878
+ * @property {Object} [user] - User details of who generated share link
879
+ * @property {string} [created_on]
880
+ * @property {Object} [source] - Share link device and other source information
881
+ * @property {Object} [meta] - Meta data sent while generating share cart link
904
882
  */
905
883
 
906
884
  /**
907
885
  * @typedef SharedCart
908
- * @property {CartBreakup} [breakup_values]
909
- * @property {boolean} [buy_now]
910
- * @property {number} [cart_id]
911
886
  * @property {string} [checkout_mode]
912
- * @property {string} [comment]
913
- * @property {string} [coupon_text]
914
- * @property {CartCurrency} [currency]
915
- * @property {string} [delivery_charge_info]
916
- * @property {ShipmentPromise} [delivery_promise]
917
- * @property {string} [gstin]
918
- * @property {string} [id]
887
+ * @property {number} [cart_id]
919
888
  * @property {boolean} [is_valid]
889
+ * @property {string} [id]
890
+ * @property {PaymentSelectionLock} [payment_selection_lock]
891
+ * @property {ShipmentPromise} [delivery_promise]
892
+ * @property {string} [comment]
920
893
  * @property {CartProductInfo[]} [items]
921
- * @property {string} [last_modified]
894
+ * @property {string} [uid]
895
+ * @property {string} [delivery_charge_info]
922
896
  * @property {string} [message]
923
- * @property {PaymentSelectionLock} [payment_selection_lock]
924
- * @property {boolean} [restrict_checkout]
897
+ * @property {string} [gstin]
925
898
  * @property {SharedCartDetails} [shared_cart_details]
926
- * @property {string} [uid]
899
+ * @property {boolean} [restrict_checkout]
900
+ * @property {string} [last_modified]
901
+ * @property {CartBreakup} [breakup_values]
902
+ * @property {CartCurrency} [currency]
903
+ * @property {string} [coupon_text]
904
+ * @property {boolean} [buy_now]
927
905
  */
928
906
 
929
907
  /**
930
- * @typedef SharedCartDetails
931
- * @property {string} [created_on]
932
- * @property {Object} [meta] - Meta data sent while generating share cart link
933
- * @property {Object} [source] - Share link device and other source information
934
- * @property {string} [token] - Short link id
935
- * @property {Object} [user] - User details of who generated share link
908
+ * @typedef SharedCartResponse
909
+ * @property {string} [error]
910
+ * @property {SharedCart} [cart]
936
911
  */
937
912
 
938
913
  /**
939
- * @typedef SharedCartResponse
940
- * @property {SharedCart} [cart]
941
- * @property {string} [error]
914
+ * @typedef FreeGiftItems
915
+ * @property {string} [item_slug] - Item slug
916
+ * @property {string} [item_name] - Item name
917
+ * @property {Object} [item_price_details] - Item price details
918
+ * @property {string} [item_brand_name] - Item brand name
919
+ * @property {number} [item_id] - Item id
920
+ * @property {string[]} [item_images_url] - Item images URL
942
921
  */
943
922
 
944
923
  /**
945
- * @typedef ShipmentPromise
946
- * @property {PromiseFormatted} [formatted]
947
- * @property {PromiseISOFormat} [iso]
948
- * @property {PromiseTimestamp} [timestamp]
924
+ * @typedef PromotionOffer
925
+ * @property {string} [id] - Promotion id
926
+ * @property {Object} [buy_rules] - Buy rules of promotions
927
+ * @property {string} [offer_text] - Offer title
928
+ * @property {string} [promotion_group] - Group of promotion belongs to
929
+ * @property {string} [valid_till] - Datetime ISOString for promotion end date
930
+ * @property {Object[]} [discount_rules] - Discount rules of promotions
931
+ * @property {FreeGiftItems[]} [free_gift_items] - Details of free gift items
932
+ * @property {string} [description] - Offer details including T&C
949
933
  */
950
934
 
951
935
  /**
952
- * @typedef ShipmentResponse
953
- * @property {string} [box_type]
954
- * @property {string} [dp_id]
955
- * @property {Object} [dp_options]
956
- * @property {number} [fulfillment_id]
957
- * @property {string} [fulfillment_type]
958
- * @property {CartProductInfo[]} [items]
959
- * @property {string} [order_type]
960
- * @property {ShipmentPromise} [promise]
961
- * @property {string} [shipment_type]
962
- * @property {number} [shipments]
936
+ * @typedef PromotionOffersResponse
937
+ * @property {PromotionOffer[]} [available_promotions]
963
938
  */
964
939
 
965
940
  /**
966
- * @typedef StaffCheckout
967
- * @property {string} _id
968
- * @property {string} [employee_code]
969
- * @property {string} first_name
970
- * @property {string} last_name
971
- * @property {string} user
941
+ * @typedef OperationErrorResponse
942
+ * @property {string} [message]
943
+ * @property {boolean} [success]
972
944
  */
973
945
 
974
946
  /**
975
- * @typedef StoreInfo
976
- * @property {string} [name]
977
- * @property {string} [store_code]
978
- * @property {number} [uid]
947
+ * @typedef LadderPrice
948
+ * @property {string} [currency_symbol] - Currency symbol for currency
949
+ * @property {number} [offer_price] - Discounted per unit price for current offer object
950
+ * @property {string} [currency_code] - Currency code for all amounts
951
+ * @property {number} [effective] - Current per unit price of product after
952
+ * existing deductions
953
+ * @property {number} [marked] - Original price of product
979
954
  */
980
955
 
981
956
  /**
982
- * @typedef Tags
983
- * @property {Object} [tags]
957
+ * @typedef LadderOfferItem
958
+ * @property {LadderPrice} [price]
959
+ * @property {number} [margin] - Percentage value of discount
960
+ * @property {number} [max_quantity] - Minimum quantity upto which offer is
961
+ * applicable. If not present that offer is applicable on all quantities
962
+ * @property {number} [min_quantity] - Minimum quantity from which offer is applicable
963
+ * @property {string} [type] - Offer type
984
964
  */
985
965
 
986
966
  /**
987
- * @typedef UpdateAddressResponse
988
- * @property {string} [id]
989
- * @property {boolean} [is_default_address]
990
- * @property {boolean} [is_updated]
991
- * @property {boolean} [success]
967
+ * @typedef LadderPriceOffer
968
+ * @property {string} [id] - Promotion id
969
+ * @property {Object} [buy_rules] - Buy rules of promotions
970
+ * @property {string} [calculate_on] - If this ladder offer is to be calculated
971
+ * on MRP or ESP price
972
+ * @property {string} [offer_text] - Offer title
973
+ * @property {string} [promotion_group] - Group of promotion belongs to
974
+ * @property {string} [valid_till] - Datetime ISOString for promotion end date
975
+ * @property {Object[]} [discount_rules] - Discount rules of promotions
976
+ * @property {LadderOfferItem[]} [offer_prices]
977
+ * @property {FreeGiftItems[]} [free_gift_items] - Details of free gift items
978
+ * @property {string} [description] - Offer details including T&C
992
979
  */
993
980
 
994
981
  /**
995
- * @typedef UpdateCartDetailResponse
996
- * @property {CartDetailResponse} [cart]
997
- * @property {string} [message]
998
- * @property {boolean} [success] - True if all items are added successfully.
999
- * False if partially added or not added.
982
+ * @typedef CurrencyInfo
983
+ * @property {string} [code]
984
+ * @property {string} [symbol]
1000
985
  */
1001
986
 
1002
987
  /**
1003
- * @typedef UpdateCartPaymentRequest
1004
- * @property {string} [address_id]
1005
- * @property {string} [aggregator_name]
1006
- * @property {string} [id]
988
+ * @typedef LadderPriceOffers
989
+ * @property {LadderPriceOffer[]} [available_offers]
990
+ * @property {CurrencyInfo} [currency]
991
+ */
992
+
993
+ /**
994
+ * @typedef PaymentMeta
1007
995
  * @property {string} [merchant_code]
996
+ * @property {string} [type]
997
+ * @property {string} [payment_gateway]
1008
998
  * @property {string} [payment_identifier]
1009
- * @property {string} [payment_mode]
1010
999
  */
1011
1000
 
1012
1001
  /**
1013
- * @typedef UpdateCartRequest
1014
- * @property {UpdateProductCart[]} [items]
1015
- * @property {string} operation
1002
+ * @typedef PaymentMethod
1003
+ * @property {PaymentMeta} payment_meta
1004
+ * @property {string} mode
1005
+ * @property {string} [payment]
1006
+ * @property {number} [amount]
1007
+ * @property {string} [name]
1008
+ * @property {Object} [payment_extra_identifiers]
1016
1009
  */
1017
1010
 
1018
1011
  /**
1019
- * @typedef UpdateProductCart
1020
- * @property {Object} [_custom_json]
1021
- * @property {string} [article_id]
1012
+ * @typedef CartCheckoutDetailV2Request
1013
+ * @property {Object} [custom_meta]
1014
+ * @property {Object} [customer_details] - Customer details
1015
+ * @property {string} [merchant_code]
1016
+ * @property {string} [cart_id]
1017
+ * @property {string} [id]
1018
+ * @property {boolean} [payment_auto_confirm]
1019
+ * @property {PaymentMethod[]} payment_methods
1020
+ * @property {string} payment_mode
1021
+ * @property {string} [aggregator]
1022
+ * @property {string} [address_id]
1023
+ * @property {string} [callback_url]
1024
+ * @property {Object} [delivery_address]
1025
+ * @property {StaffCheckout} [staff]
1026
+ * @property {string} [order_type]
1027
+ * @property {number} [ordering_store]
1022
1028
  * @property {Object} [extra_meta]
1023
- * @property {CartProductIdentifer} identifiers
1024
- * @property {number} [item_id]
1025
- * @property {number} [item_index]
1026
- * @property {string} [item_size]
1029
+ * @property {string} [payment_identifier]
1030
+ * @property {Object} [billing_address]
1031
+ * @property {Object} [payment_params]
1032
+ * @property {string} [billing_address_id]
1027
1033
  * @property {Object} [meta]
1028
- * @property {Object} [parent_item_identifiers]
1029
- * @property {number} [quantity]
1034
+ * @property {string} [iin]
1035
+ * @property {string} [network]
1036
+ * @property {string} [type]
1037
+ * @property {string} [card_id]
1030
1038
  */
1031
1039
 
1032
1040
  class CartApplicationModel {
1033
- /** @returns {ActionQuery} */
1034
- static ActionQuery() {
1035
- return Joi.object({
1036
- product_slug: Joi.array().items(Joi.string().allow("")),
1037
- });
1038
- }
1039
-
1040
- /** @returns {AddCartDetailResponse} */
1041
- static AddCartDetailResponse() {
1041
+ /** @returns {BuyRules} */
1042
+ static BuyRules() {
1042
1043
  return Joi.object({
1043
- cart: CartApplicationModel.CartDetailResponse(),
1044
- message: Joi.string().allow(""),
1045
- partial: Joi.boolean(),
1046
- success: Joi.boolean(),
1044
+ item_criteria: Joi.any(),
1045
+ cart_conditions: Joi.any(),
1047
1046
  });
1048
1047
  }
1049
1048
 
1050
- /** @returns {AddCartRequest} */
1051
- static AddCartRequest() {
1049
+ /** @returns {DiscountRulesApp} */
1050
+ static DiscountRulesApp() {
1052
1051
  return Joi.object({
1053
- items: Joi.array().items(CartApplicationModel.AddProductCart()),
1054
- new_cart: Joi.boolean(),
1052
+ matched_buy_rules: Joi.array().items(Joi.string().allow("")),
1053
+ raw_offer: Joi.any(),
1054
+ offer: Joi.any(),
1055
+ item_criteria: Joi.any(),
1055
1056
  });
1056
1057
  }
1057
1058
 
1058
- /** @returns {AddProductCart} */
1059
- static AddProductCart() {
1059
+ /** @returns {Ownership} */
1060
+ static Ownership() {
1060
1061
  return Joi.object({
1061
- _custom_json: Joi.any(),
1062
- article_assignment: Joi.any(),
1063
- article_id: Joi.string().allow(""),
1064
- display: Joi.string().allow(""),
1065
- extra_meta: Joi.any(),
1066
- item_id: Joi.number(),
1067
- item_size: Joi.string().allow(""),
1068
- meta: Joi.any(),
1069
- parent_item_identifiers: Joi.array().items(
1070
- Joi.object().pattern(/\S/, Joi.string().allow(""))
1071
- ),
1072
- pos: Joi.boolean(),
1073
- product_group_tags: Joi.array().items(Joi.string().allow("").allow(null)),
1074
- quantity: Joi.number(),
1075
- seller_id: Joi.number(),
1076
- seller_identifier: Joi.string().allow(""),
1077
- store_id: Joi.number(),
1062
+ payable_category: Joi.string().allow(""),
1063
+ payable_by: Joi.string().allow(""),
1078
1064
  });
1079
1065
  }
1080
1066
 
1081
- /** @returns {Address} */
1082
- static Address() {
1067
+ /** @returns {FreeGiftItem} */
1068
+ static FreeGiftItem() {
1083
1069
  return Joi.object({
1084
- _custom_json: Joi.any(),
1085
- address: Joi.string().allow(""),
1086
- address_type: Joi.string().allow(""),
1087
- area: Joi.string().allow(""),
1088
- area_code: Joi.string().allow(""),
1089
- area_code_slug: Joi.string().allow(""),
1090
- checkout_mode: Joi.string().allow(""),
1091
- city: Joi.string().allow(""),
1092
- country: Joi.string().allow(""),
1093
- country_code: Joi.string().allow(""),
1094
- country_iso_code: Joi.string().allow(""),
1095
- country_phone_code: Joi.string().allow(""),
1096
- created_by_user_id: Joi.string().allow(""),
1097
- email: Joi.string().allow(""),
1098
- geo_location: CartApplicationModel.GeoLocation(),
1099
- google_map_point: Joi.any(),
1100
- id: Joi.string().allow(""),
1101
- is_active: Joi.boolean(),
1102
- is_default_address: Joi.boolean(),
1103
- landmark: Joi.string().allow(""),
1104
- meta: Joi.any(),
1105
- name: Joi.string().allow(""),
1106
- phone: Joi.string().allow(""),
1107
- sector: Joi.string().allow(""),
1108
- state: Joi.string().allow(""),
1109
- state_code: Joi.string().allow(""),
1110
- tags: Joi.array().items(Joi.string().allow("")),
1111
- user_id: Joi.string().allow(""),
1070
+ item_slug: Joi.string().allow(""),
1071
+ item_name: Joi.string().allow(""),
1072
+ item_price_details: Joi.any(),
1073
+ item_brand_name: Joi.string().allow(""),
1074
+ item_id: Joi.number(),
1075
+ item_images_url: Joi.array().items(Joi.string().allow("")),
1112
1076
  });
1113
1077
  }
1114
1078
 
1115
1079
  /** @returns {AppliedFreeArticles} */
1116
1080
  static AppliedFreeArticles() {
1117
1081
  return Joi.object({
1118
- article_id: Joi.string().allow(""),
1119
1082
  free_gift_item_details: CartApplicationModel.FreeGiftItem(),
1120
1083
  parent_item_identifier: Joi.string().allow(""),
1121
1084
  quantity: Joi.number(),
1085
+ article_id: Joi.string().allow(""),
1122
1086
  });
1123
1087
  }
1124
1088
 
1125
1089
  /** @returns {AppliedPromotion} */
1126
1090
  static AppliedPromotion() {
1127
1091
  return Joi.object({
1128
- amount: Joi.number(),
1129
- applied_free_articles: Joi.array().items(
1130
- CartApplicationModel.AppliedFreeArticles()
1131
- ),
1132
- article_quantity: Joi.number(),
1092
+ promo_id: Joi.string().allow(""),
1133
1093
  buy_rules: Joi.array().items(CartApplicationModel.BuyRules()),
1134
- code: Joi.string().allow("").allow(null),
1094
+ offer_text: Joi.string().allow(""),
1095
+ promotion_group: Joi.string().allow(""),
1096
+ mrp_promotion: Joi.boolean(),
1097
+ promotion_name: Joi.string().allow(""),
1098
+ amount: Joi.number(),
1135
1099
  discount_rules: Joi.array().items(
1136
1100
  CartApplicationModel.DiscountRulesApp()
1137
1101
  ),
1138
- meta: Joi.any(),
1139
- mrp_promotion: Joi.boolean(),
1140
- offer_text: Joi.string().allow(""),
1141
1102
  ownership: CartApplicationModel.Ownership(),
1142
- promo_id: Joi.string().allow(""),
1143
- promotion_group: Joi.string().allow(""),
1144
- promotion_name: Joi.string().allow(""),
1103
+ article_quantity: Joi.number(),
1104
+ applied_free_articles: Joi.array().items(
1105
+ CartApplicationModel.AppliedFreeArticles()
1106
+ ),
1145
1107
  promotion_type: Joi.string().allow(""),
1108
+ meta: Joi.any(),
1109
+ code: Joi.string().allow("").allow(null),
1146
1110
  });
1147
1111
  }
1148
1112
 
1149
- /** @returns {ApplyCouponRequest} */
1150
- static ApplyCouponRequest() {
1113
+ /** @returns {PaymentSelectionLock} */
1114
+ static PaymentSelectionLock() {
1151
1115
  return Joi.object({
1152
- coupon_code: Joi.string().allow("").required(),
1116
+ enabled: Joi.boolean(),
1117
+ default_options: Joi.string().allow(""),
1118
+ payment_identifier: Joi.string().allow(""),
1153
1119
  });
1154
1120
  }
1155
1121
 
1156
- /** @returns {ArticleGiftDetail} */
1157
- static ArticleGiftDetail() {
1122
+ /** @returns {PromiseFormatted} */
1123
+ static PromiseFormatted() {
1158
1124
  return Joi.object({
1159
- article_id: CartApplicationModel.GiftDetail(),
1125
+ max: Joi.string().allow(""),
1126
+ min: Joi.string().allow(""),
1127
+ });
1128
+ }
1129
+
1130
+ /** @returns {PromiseISOFormat} */
1131
+ static PromiseISOFormat() {
1132
+ return Joi.object({
1133
+ max: Joi.string().allow(""),
1134
+ min: Joi.string().allow(""),
1135
+ });
1136
+ }
1137
+
1138
+ /** @returns {PromiseTimestamp} */
1139
+ static PromiseTimestamp() {
1140
+ return Joi.object({
1141
+ max: Joi.number(),
1142
+ min: Joi.number(),
1143
+ });
1144
+ }
1145
+
1146
+ /** @returns {ShipmentPromise} */
1147
+ static ShipmentPromise() {
1148
+ return Joi.object({
1149
+ formatted: CartApplicationModel.PromiseFormatted(),
1150
+ timestamp: CartApplicationModel.PromiseTimestamp(),
1151
+ iso: CartApplicationModel.PromiseISOFormat(),
1152
+ });
1153
+ }
1154
+
1155
+ /** @returns {BasePrice} */
1156
+ static BasePrice() {
1157
+ return Joi.object({
1158
+ effective: Joi.number(),
1159
+ currency_symbol: Joi.string().allow(""),
1160
+ marked: Joi.number(),
1161
+ currency_code: Joi.string().allow(""),
1160
1162
  });
1161
1163
  }
1162
1164
 
@@ -1171,235 +1173,179 @@ class CartApplicationModel {
1171
1173
  /** @returns {BaseInfo} */
1172
1174
  static BaseInfo() {
1173
1175
  return Joi.object({
1174
- name: Joi.string().allow(""),
1175
1176
  uid: Joi.number(),
1177
+ name: Joi.string().allow(""),
1176
1178
  });
1177
1179
  }
1178
1180
 
1179
- /** @returns {BasePrice} */
1180
- static BasePrice() {
1181
+ /** @returns {StoreInfo} */
1182
+ static StoreInfo() {
1181
1183
  return Joi.object({
1182
- currency_code: Joi.string().allow(""),
1183
- currency_symbol: Joi.string().allow(""),
1184
- effective: Joi.number(),
1185
- marked: Joi.number(),
1184
+ store_code: Joi.string().allow(""),
1185
+ uid: Joi.number(),
1186
+ name: Joi.string().allow(""),
1186
1187
  });
1187
1188
  }
1188
1189
 
1189
- /** @returns {BulkPriceOffer} */
1190
- static BulkPriceOffer() {
1190
+ /** @returns {ProductArticle} */
1191
+ static ProductArticle() {
1191
1192
  return Joi.object({
1192
- offers: Joi.array().items(CartApplicationModel.OfferItem()),
1193
- seller: CartApplicationModel.OfferSeller(),
1193
+ price: CartApplicationModel.ArticlePriceInfo(),
1194
+ product_group_tags: Joi.array().items(Joi.string().allow("")),
1195
+ extra_meta: Joi.any(),
1196
+ quantity: Joi.number(),
1197
+ _custom_json: Joi.any(),
1198
+ meta: Joi.any(),
1199
+ size: Joi.string().allow(""),
1200
+ mto_quantity: Joi.number(),
1201
+ seller: CartApplicationModel.BaseInfo(),
1202
+ seller_identifier: Joi.string().allow(""),
1203
+ parent_item_identifiers: Joi.any(),
1204
+ identifier: Joi.any(),
1205
+ store: CartApplicationModel.StoreInfo(),
1206
+ cart_item_meta: Joi.any(),
1207
+ uid: Joi.string().allow(""),
1208
+ gift_card: Joi.any(),
1209
+ is_gift_visible: Joi.boolean(),
1210
+ type: Joi.string().allow(""),
1211
+ tags: Joi.array().items(Joi.string().allow("")),
1194
1212
  });
1195
1213
  }
1196
1214
 
1197
- /** @returns {BulkPriceResponse} */
1198
- static BulkPriceResponse() {
1215
+ /** @returns {CartProductIdentifer} */
1216
+ static CartProductIdentifer() {
1199
1217
  return Joi.object({
1200
- data: Joi.array().items(CartApplicationModel.BulkPriceOffer()),
1218
+ identifier: Joi.string().allow(""),
1201
1219
  });
1202
1220
  }
1203
1221
 
1204
- /** @returns {BuyRules} */
1205
- static BuyRules() {
1222
+ /** @returns {PromoMeta} */
1223
+ static PromoMeta() {
1206
1224
  return Joi.object({
1207
- cart_conditions: Joi.any(),
1208
- item_criteria: Joi.any(),
1225
+ message: Joi.string().allow(""),
1209
1226
  });
1210
1227
  }
1211
1228
 
1212
- /** @returns {CartBreakup} */
1213
- static CartBreakup() {
1229
+ /** @returns {ChargesAmount} */
1230
+ static ChargesAmount() {
1214
1231
  return Joi.object({
1215
- coupon: CartApplicationModel.CouponBreakup(),
1216
- display: Joi.array().items(CartApplicationModel.DisplayBreakup()),
1217
- loyalty_points: CartApplicationModel.LoyaltyPoints(),
1218
- raw: CartApplicationModel.RawBreakup(),
1232
+ value: Joi.number(),
1233
+ currency: Joi.string().allow(""),
1219
1234
  });
1220
1235
  }
1221
1236
 
1222
- /** @returns {CartCheckoutCustomMeta} */
1223
- static CartCheckoutCustomMeta() {
1237
+ /** @returns {Charges} */
1238
+ static Charges() {
1224
1239
  return Joi.object({
1225
- key: Joi.string().allow("").required(),
1226
- value: Joi.string().allow("").required(),
1240
+ meta: Joi.any(),
1241
+ amount: CartApplicationModel.ChargesAmount(),
1242
+ name: Joi.string().allow(""),
1243
+ allow_refund: Joi.boolean(),
1244
+ code: Joi.string().allow(""),
1245
+ type: Joi.string().allow(""),
1227
1246
  });
1228
1247
  }
1229
1248
 
1230
- /** @returns {CartCheckoutDetailRequest} */
1231
- static CartCheckoutDetailRequest() {
1249
+ /** @returns {ProductPrice} */
1250
+ static ProductPrice() {
1232
1251
  return Joi.object({
1233
- address_id: Joi.string().allow(""),
1234
- aggregator: Joi.string().allow(""),
1235
- billing_address: Joi.any(),
1236
- billing_address_id: Joi.string().allow(""),
1237
- callback_url: Joi.string().allow(""),
1238
- custom_meta: Joi.array().items(
1239
- CartApplicationModel.CartCheckoutCustomMeta()
1240
- ),
1241
- customer_details: Joi.any(),
1242
- delivery_address: Joi.any(),
1243
- extra_meta: Joi.any(),
1244
- id: Joi.string().allow(""),
1245
- merchant_code: Joi.string().allow(""),
1246
- meta: Joi.any(),
1247
- order_type: Joi.string().allow(""),
1248
- ordering_store: Joi.number(),
1249
- payment_auto_confirm: Joi.boolean(),
1250
- payment_extra_identifiers: Joi.any(),
1251
- payment_identifier: Joi.string().allow(""),
1252
- payment_mode: Joi.string().allow("").required(),
1253
- payment_params: Joi.any(),
1254
- staff: CartApplicationModel.StaffCheckout(),
1252
+ currency_symbol: Joi.string().allow(""),
1253
+ selling: Joi.number(),
1254
+ currency_code: Joi.string().allow(""),
1255
+ add_on: Joi.number(),
1256
+ effective: Joi.number(),
1257
+ marked: Joi.number(),
1255
1258
  });
1256
1259
  }
1257
1260
 
1258
- /** @returns {CartCheckoutDetailV2Request} */
1259
- static CartCheckoutDetailV2Request() {
1261
+ /** @returns {ProductPriceInfo} */
1262
+ static ProductPriceInfo() {
1260
1263
  return Joi.object({
1261
- address_id: Joi.string().allow(""),
1262
- aggregator: Joi.string().allow(""),
1263
- billing_address: Joi.any(),
1264
- billing_address_id: Joi.string().allow(""),
1265
- callback_url: Joi.string().allow("").allow(null),
1266
- cart_id: Joi.string().allow(""),
1267
- custom_meta: Joi.any(),
1268
- customer_details: Joi.any().allow(null),
1269
- delivery_address: Joi.any(),
1270
- extra_meta: Joi.any(),
1271
- id: Joi.string().allow("").allow(null),
1272
- merchant_code: Joi.string().allow(""),
1273
- meta: Joi.any(),
1274
- order_type: Joi.string().allow(""),
1275
- ordering_store: Joi.number().allow(null),
1276
- payment_auto_confirm: Joi.boolean(),
1277
- payment_identifier: Joi.string().allow("").allow(null),
1278
- payment_methods: Joi.array()
1279
- .items(CartApplicationModel.PaymentMethod())
1280
- .required(),
1281
- payment_mode: Joi.string().allow("").required(),
1282
- payment_params: Joi.any().allow(null),
1283
- staff: CartApplicationModel.StaffCheckout(),
1264
+ base: CartApplicationModel.ProductPrice(),
1265
+ converted: CartApplicationModel.ProductPrice(),
1284
1266
  });
1285
1267
  }
1286
1268
 
1287
- /** @returns {CartCheckoutResponse} */
1288
- static CartCheckoutResponse() {
1269
+ /** @returns {ProductPricePerUnit} */
1270
+ static ProductPricePerUnit() {
1289
1271
  return Joi.object({
1290
- app_intercept_url: Joi.string().allow(""),
1291
- callback_url: Joi.string().allow(""),
1292
- cart: CartApplicationModel.CheckCart(),
1293
- data: Joi.any(),
1294
- message: Joi.string().allow(""),
1295
- order_id: Joi.string().allow(""),
1296
- payment_confirm_url: Joi.string().allow(""),
1297
- success: Joi.boolean(),
1272
+ currency_symbol: Joi.string().allow(""),
1273
+ selling_price: Joi.number(),
1274
+ currency_code: Joi.string().allow(""),
1275
+ add_on: Joi.number(),
1276
+ effective: Joi.number(),
1277
+ marked: Joi.number(),
1298
1278
  });
1299
1279
  }
1300
1280
 
1301
- /** @returns {CartCommonConfig} */
1302
- static CartCommonConfig() {
1281
+ /** @returns {ProductPricePerUnitInfo} */
1282
+ static ProductPricePerUnitInfo() {
1303
1283
  return Joi.object({
1304
- delivery_charges_config: CartApplicationModel.DeliveryChargesConfig(),
1284
+ base: CartApplicationModel.ProductPricePerUnit(),
1285
+ converted: CartApplicationModel.ProductPricePerUnit(),
1305
1286
  });
1306
1287
  }
1307
1288
 
1308
- /** @returns {CartCurrency} */
1309
- static CartCurrency() {
1289
+ /** @returns {ProductAvailabilitySize} */
1290
+ static ProductAvailabilitySize() {
1310
1291
  return Joi.object({
1311
- code: Joi.string().allow(""),
1312
- symbol: Joi.string().allow(""),
1292
+ display: Joi.string().allow(""),
1293
+ value: Joi.string().allow(""),
1294
+ is_available: Joi.boolean(),
1313
1295
  });
1314
1296
  }
1315
1297
 
1316
- /** @returns {CartDetailCoupon} */
1317
- static CartDetailCoupon() {
1298
+ /** @returns {ProductAvailability} */
1299
+ static ProductAvailability() {
1318
1300
  return Joi.object({
1319
- cashback_amount: Joi.number(),
1320
- cashback_message_primary: Joi.string().allow(""),
1321
- cashback_message_secondary: Joi.string().allow(""),
1322
- coupon_code: Joi.string().allow(""),
1323
- coupon_description: Joi.string().allow(""),
1324
- coupon_id: Joi.string().allow(""),
1325
- coupon_subtitle: Joi.string().allow(""),
1326
- coupon_title: Joi.string().allow(""),
1327
- coupon_type: Joi.string().allow(""),
1328
- coupon_value: Joi.number(),
1329
- discount: Joi.number(),
1330
- is_applied: Joi.boolean(),
1301
+ out_of_stock: Joi.boolean(),
1302
+ deliverable: Joi.boolean(),
1303
+ available_sizes: Joi.array().items(
1304
+ CartApplicationModel.ProductAvailabilitySize()
1305
+ ),
1331
1306
  is_valid: Joi.boolean(),
1332
- maximum_discount_value: Joi.number(),
1333
- message: Joi.string().allow(""),
1334
- minimum_cart_value: Joi.number(),
1307
+ other_store_quantity: Joi.number(),
1308
+ sizes: Joi.array().items(Joi.string().allow("")),
1335
1309
  });
1336
1310
  }
1337
1311
 
1338
- /** @returns {CartDetailResponse} */
1339
- static CartDetailResponse() {
1312
+ /** @returns {ActionQuery} */
1313
+ static ActionQuery() {
1340
1314
  return Joi.object({
1341
- applied_promo_details: Joi.array().items(
1342
- CartApplicationModel.AppliedPromotion()
1343
- ),
1344
- breakup_values: CartApplicationModel.CartBreakup(),
1345
- buy_now: Joi.boolean(),
1346
- cart_id: Joi.number(),
1347
- checkout_mode: Joi.string().allow(""),
1348
- comment: Joi.string().allow(""),
1349
- common_config: CartApplicationModel.CartCommonConfig(),
1350
- coupon: CartApplicationModel.CartDetailCoupon(),
1351
- coupon_text: Joi.string().allow(""),
1352
- currency: CartApplicationModel.CartCurrency(),
1353
- delivery_charge_info: Joi.string().allow(""),
1354
- delivery_promise: CartApplicationModel.ShipmentPromise(),
1355
- gstin: Joi.string().allow(""),
1356
- id: Joi.string().allow(""),
1357
- is_valid: Joi.boolean(),
1358
- items: Joi.array().items(CartApplicationModel.CartProductInfo()),
1359
- last_modified: Joi.string().allow(""),
1360
- message: Joi.string().allow(""),
1361
- notification: Joi.any(),
1362
- pan_config: Joi.any(),
1363
- pan_no: Joi.string().allow(""),
1364
- payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1365
- restrict_checkout: Joi.boolean(),
1366
- staff_user_id: Joi.string().allow(""),
1367
- success: Joi.boolean(),
1368
- uid: Joi.string().allow(""),
1315
+ product_slug: Joi.array().items(Joi.string().allow("")),
1369
1316
  });
1370
1317
  }
1371
1318
 
1372
- /** @returns {CartItemCountResponse} */
1373
- static CartItemCountResponse() {
1319
+ /** @returns {ProductAction} */
1320
+ static ProductAction() {
1374
1321
  return Joi.object({
1375
- user_cart_items_count: Joi.number(),
1322
+ query: CartApplicationModel.ActionQuery(),
1323
+ url: Joi.string().allow(""),
1324
+ type: Joi.string().allow(""),
1376
1325
  });
1377
1326
  }
1378
1327
 
1379
- /** @returns {CartMetaMissingResponse} */
1380
- static CartMetaMissingResponse() {
1328
+ /** @returns {Tags} */
1329
+ static Tags() {
1381
1330
  return Joi.object({
1382
- errors: Joi.array().items(Joi.string().allow("")),
1331
+ tags: Joi.any(),
1383
1332
  });
1384
1333
  }
1385
1334
 
1386
- /** @returns {CartMetaRequest} */
1387
- static CartMetaRequest() {
1335
+ /** @returns {ProductImage} */
1336
+ static ProductImage() {
1388
1337
  return Joi.object({
1389
- checkout_mode: Joi.string().allow(""),
1390
- comment: Joi.string().allow(""),
1391
- delivery_slots: Joi.any(),
1392
- gift_details: CartApplicationModel.ArticleGiftDetail(),
1393
- gstin: Joi.string().allow(""),
1394
- pick_up_customer_details: Joi.any(),
1338
+ secure_url: Joi.string().allow(""),
1339
+ aspect_ratio: Joi.string().allow(""),
1340
+ url: Joi.string().allow(""),
1395
1341
  });
1396
1342
  }
1397
1343
 
1398
- /** @returns {CartMetaResponse} */
1399
- static CartMetaResponse() {
1344
+ /** @returns {CategoryInfo} */
1345
+ static CategoryInfo() {
1400
1346
  return Joi.object({
1401
- is_valid: Joi.boolean(),
1402
- message: Joi.string().allow(""),
1347
+ uid: Joi.number(),
1348
+ name: Joi.string().allow(""),
1403
1349
  });
1404
1350
  }
1405
1351
 
@@ -1407,25 +1353,27 @@ class CartApplicationModel {
1407
1353
  static CartProduct() {
1408
1354
  return Joi.object({
1409
1355
  _custom_json: Joi.any(),
1410
- action: CartApplicationModel.ProductAction(),
1411
- attributes: Joi.any(),
1412
1356
  brand: CartApplicationModel.BaseInfo(),
1413
- categories: Joi.array().items(CartApplicationModel.CategoryInfo()),
1357
+ action: CartApplicationModel.ProductAction(),
1358
+ teaser_tag: CartApplicationModel.Tags(),
1359
+ slug: Joi.string().allow(""),
1414
1360
  images: Joi.array().items(CartApplicationModel.ProductImage()),
1415
- item_code: Joi.string().allow("").allow(null),
1361
+ uid: Joi.number(),
1416
1362
  name: Joi.string().allow(""),
1417
- slug: Joi.string().allow(""),
1363
+ item_code: Joi.string().allow("").allow(null),
1364
+ categories: Joi.array().items(CartApplicationModel.CategoryInfo()),
1418
1365
  tags: Joi.array().items(Joi.string().allow("")),
1419
- teaser_tag: CartApplicationModel.Tags(),
1420
1366
  type: Joi.string().allow(""),
1421
- uid: Joi.number(),
1367
+ attributes: Joi.any(),
1422
1368
  });
1423
1369
  }
1424
1370
 
1425
- /** @returns {CartProductIdentifer} */
1426
- static CartProductIdentifer() {
1371
+ /** @returns {CouponDetails} */
1372
+ static CouponDetails() {
1427
1373
  return Joi.object({
1428
- identifier: Joi.string().allow(""),
1374
+ discount_single_quantity: Joi.number(),
1375
+ code: Joi.string().allow(""),
1376
+ discount_total_quantity: Joi.number(),
1429
1377
  });
1430
1378
  }
1431
1379
 
@@ -1433,837 +1381,905 @@ class CartApplicationModel {
1433
1381
  static CartProductInfo() {
1434
1382
  return Joi.object({
1435
1383
  article: CartApplicationModel.ProductArticle(),
1436
- availability: CartApplicationModel.ProductAvailability(),
1437
- bulk_offer: Joi.any(),
1438
- charges: Joi.array().items(CartApplicationModel.Charges()),
1439
- coupon: CartApplicationModel.CouponDetails(),
1440
- coupon_message: Joi.string().allow(""),
1441
- custom_order: Joi.any(),
1442
- delivery_promise: CartApplicationModel.ShipmentPromise(),
1443
- discount: Joi.string().allow(""),
1444
- identifiers: CartApplicationModel.CartProductIdentifer().required(),
1445
- is_set: Joi.boolean(),
1446
- key: Joi.string().allow(""),
1447
- message: Joi.string().allow(""),
1448
1384
  moq: Joi.any(),
1449
- parent_item_identifiers: Joi.any(),
1450
- price: CartApplicationModel.ProductPriceInfo(),
1451
- price_per_unit: CartApplicationModel.ProductPricePerUnitInfo(),
1452
- product: CartApplicationModel.CartProduct(),
1453
- product_ean_id: Joi.string().allow(""),
1385
+ identifiers: CartApplicationModel.CartProductIdentifer().required(),
1454
1386
  promo_meta: CartApplicationModel.PromoMeta(),
1455
- promotions_applied: Joi.array().items(
1456
- CartApplicationModel.AppliedPromotion()
1457
- ),
1387
+ price: CartApplicationModel.ProductPriceInfo(),
1458
1388
  quantity: Joi.number(),
1459
- });
1460
- }
1461
-
1462
- /** @returns {CartShipmentsResponse} */
1463
- static CartShipmentsResponse() {
1464
- return Joi.object({
1465
- breakup_values: CartApplicationModel.CartBreakup(),
1466
- buy_now: Joi.boolean(),
1467
- cart_id: Joi.number(),
1468
- checkout_mode: Joi.string().allow(""),
1469
- comment: Joi.string().allow(""),
1470
- coupon_text: Joi.string().allow(""),
1471
- currency: CartApplicationModel.CartCurrency(),
1472
- delivery_charge_info: Joi.string().allow(""),
1473
- delivery_promise: CartApplicationModel.ShipmentPromise(),
1474
- error: Joi.boolean(),
1475
- gstin: Joi.string().allow(""),
1476
- id: Joi.string().allow(""),
1477
- is_valid: Joi.boolean(),
1478
- last_modified: Joi.string().allow(""),
1479
- message: Joi.string().allow(""),
1480
- payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1481
- restrict_checkout: Joi.boolean(),
1482
- shipments: Joi.array().items(CartApplicationModel.ShipmentResponse()),
1483
- uid: Joi.string().allow(""),
1484
- });
1485
- }
1486
-
1487
- /** @returns {CategoryInfo} */
1488
- static CategoryInfo() {
1489
- return Joi.object({
1490
- name: Joi.string().allow(""),
1491
- uid: Joi.number(),
1492
- });
1493
- }
1494
-
1495
- /** @returns {Charges} */
1496
- static Charges() {
1497
- return Joi.object({
1498
- allow_refund: Joi.boolean(),
1499
- amount: CartApplicationModel.ChargesAmount(),
1500
- code: Joi.string().allow(""),
1501
- meta: Joi.any(),
1502
- name: Joi.string().allow(""),
1503
- type: Joi.string().allow(""),
1504
- });
1505
- }
1506
-
1507
- /** @returns {ChargesAmount} */
1508
- static ChargesAmount() {
1509
- return Joi.object({
1510
- currency: Joi.string().allow(""),
1511
- value: Joi.number(),
1512
- });
1513
- }
1514
-
1515
- /** @returns {ChargesThreshold} */
1516
- static ChargesThreshold() {
1517
- return Joi.object({
1518
- charges: Joi.number(),
1519
- threshold: Joi.number(),
1520
- });
1521
- }
1522
-
1523
- /** @returns {CheckCart} */
1524
- static CheckCart() {
1525
- return Joi.object({
1526
- breakup_values: CartApplicationModel.CartBreakup(),
1527
- buy_now: Joi.boolean(),
1528
- cart_id: Joi.number(),
1529
- checkout_mode: Joi.string().allow(""),
1530
- cod_available: Joi.boolean(),
1531
- cod_charges: Joi.number(),
1532
- cod_message: Joi.string().allow(""),
1533
- comment: Joi.string().allow(""),
1534
- coupon_text: Joi.string().allow(""),
1535
- currency: CartApplicationModel.CartCurrency(),
1536
- delivery_charge_info: Joi.string().allow(""),
1537
- delivery_charge_order_value: Joi.number(),
1538
- delivery_charges: Joi.number(),
1389
+ charges: Joi.array().items(CartApplicationModel.Charges()),
1390
+ discount: Joi.string().allow(""),
1391
+ availability: CartApplicationModel.ProductAvailability(),
1539
1392
  delivery_promise: CartApplicationModel.ShipmentPromise(),
1540
- error_message: Joi.string().allow(""),
1541
- gstin: Joi.string().allow(""),
1542
- id: Joi.string().allow(""),
1543
- is_valid: Joi.boolean(),
1544
- items: Joi.array().items(CartApplicationModel.CartProductInfo()),
1545
- last_modified: Joi.string().allow(""),
1393
+ product: CartApplicationModel.CartProduct(),
1394
+ product_ean_id: Joi.string().allow(""),
1395
+ bulk_offer: Joi.any(),
1396
+ parent_item_identifiers: Joi.any(),
1397
+ coupon: CartApplicationModel.CouponDetails(),
1398
+ custom_order: Joi.any(),
1399
+ coupon_message: Joi.string().allow(""),
1400
+ key: Joi.string().allow(""),
1546
1401
  message: Joi.string().allow(""),
1547
- order_id: Joi.string().allow(""),
1548
- payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1549
- restrict_checkout: Joi.boolean(),
1550
- store_code: Joi.string().allow(""),
1551
- store_emps: Joi.array().items(Joi.any()),
1552
- success: Joi.boolean(),
1553
- uid: Joi.string().allow(""),
1554
- user_type: Joi.string().allow(""),
1402
+ is_set: Joi.boolean(),
1403
+ price_per_unit: CartApplicationModel.ProductPricePerUnitInfo(),
1404
+ promotions_applied: Joi.array().items(
1405
+ CartApplicationModel.AppliedPromotion()
1406
+ ),
1555
1407
  });
1556
1408
  }
1557
1409
 
1558
- /** @returns {Coupon} */
1559
- static Coupon() {
1410
+ /** @returns {DisplayBreakup} */
1411
+ static DisplayBreakup() {
1560
1412
  return Joi.object({
1561
- coupon_amount: Joi.number(),
1562
- coupon_applicable_message: Joi.string().allow(""),
1563
- coupon_code: Joi.string().allow(""),
1564
- coupon_type: Joi.string().allow("").allow(null),
1565
- coupon_value: Joi.number(),
1566
- description: Joi.string().allow("").allow(null),
1567
- end_date: Joi.string().allow("").allow(null),
1568
- expires_on: Joi.string().allow(""),
1569
- is_applicable: Joi.boolean(),
1570
- is_applied: Joi.boolean(),
1571
- max_discount_value: Joi.number(),
1572
- message: Joi.string().allow(""),
1573
- minimum_cart_value: Joi.number(),
1574
- start_date: Joi.string().allow("").allow(null),
1575
- sub_title: Joi.string().allow(""),
1576
- title: Joi.string().allow(""),
1413
+ currency_symbol: Joi.string().allow(""),
1414
+ key: Joi.string().allow(""),
1415
+ display: Joi.string().allow(""),
1416
+ message: Joi.array().items(Joi.string().allow("")),
1417
+ currency_code: Joi.string().allow(""),
1418
+ value: Joi.number(),
1419
+ preset: Joi.number(),
1420
+ });
1421
+ }
1422
+
1423
+ /** @returns {RawBreakup} */
1424
+ static RawBreakup() {
1425
+ return Joi.object({
1426
+ vog: Joi.number(),
1427
+ subtotal: Joi.number(),
1428
+ fynd_cash: Joi.number(),
1429
+ discount: Joi.number(),
1430
+ convenience_fee: Joi.number(),
1431
+ delivery_charge: Joi.number(),
1432
+ gst_charges: Joi.number(),
1433
+ mrp_total: Joi.number(),
1434
+ mop_total: Joi.number(),
1435
+ total_charge: Joi.number(),
1436
+ coupon: Joi.number(),
1437
+ total: Joi.number(),
1438
+ gift_card: Joi.number(),
1439
+ you_saved: Joi.number(),
1440
+ cod_charge: Joi.number(),
1577
1441
  });
1578
1442
  }
1579
1443
 
1580
1444
  /** @returns {CouponBreakup} */
1581
1445
  static CouponBreakup() {
1582
1446
  return Joi.object({
1583
- code: Joi.string().allow(""),
1584
- coupon_type: Joi.string().allow("").allow(null),
1585
1447
  coupon_value: Joi.number(),
1586
- description: Joi.string().allow("").allow(null),
1587
- is_applied: Joi.boolean(),
1588
- max_discount_value: Joi.number(),
1589
- message: Joi.string().allow(""),
1590
- minimum_cart_value: Joi.number(),
1591
- sub_title: Joi.string().allow("").allow(null),
1592
1448
  title: Joi.string().allow("").allow(null),
1593
- type: Joi.string().allow(""),
1449
+ sub_title: Joi.string().allow("").allow(null),
1450
+ minimum_cart_value: Joi.number(),
1451
+ message: Joi.string().allow(""),
1452
+ coupon_type: Joi.string().allow("").allow(null),
1594
1453
  uid: Joi.string().allow(""),
1595
1454
  value: Joi.number(),
1455
+ max_discount_value: Joi.number(),
1456
+ is_applied: Joi.boolean(),
1457
+ description: Joi.string().allow("").allow(null),
1458
+ code: Joi.string().allow(""),
1459
+ type: Joi.string().allow(""),
1596
1460
  });
1597
1461
  }
1598
1462
 
1599
- /** @returns {CouponDetails} */
1600
- static CouponDetails() {
1463
+ /** @returns {LoyaltyPoints} */
1464
+ static LoyaltyPoints() {
1601
1465
  return Joi.object({
1602
- code: Joi.string().allow(""),
1603
- discount_single_quantity: Joi.number(),
1604
- discount_total_quantity: Joi.number(),
1466
+ total: Joi.number(),
1467
+ description: Joi.string().allow(""),
1468
+ applicable: Joi.number(),
1469
+ is_applied: Joi.boolean(),
1605
1470
  });
1606
1471
  }
1607
1472
 
1608
- /** @returns {CouponValidity} */
1609
- static CouponValidity() {
1473
+ /** @returns {CartBreakup} */
1474
+ static CartBreakup() {
1610
1475
  return Joi.object({
1611
- code: Joi.string().allow("").allow(null),
1612
- discount: Joi.number(),
1613
- display_message_en: Joi.string().allow("").allow(null),
1614
- next_validation_required: Joi.boolean().allow(null),
1615
- title: Joi.string().allow(""),
1616
- valid: Joi.boolean(),
1476
+ display: Joi.array().items(CartApplicationModel.DisplayBreakup()),
1477
+ raw: CartApplicationModel.RawBreakup(),
1478
+ coupon: CartApplicationModel.CouponBreakup(),
1479
+ loyalty_points: CartApplicationModel.LoyaltyPoints(),
1617
1480
  });
1618
1481
  }
1619
1482
 
1620
- /** @returns {CurrencyInfo} */
1621
- static CurrencyInfo() {
1483
+ /** @returns {CartCurrency} */
1484
+ static CartCurrency() {
1622
1485
  return Joi.object({
1623
1486
  code: Joi.string().allow(""),
1624
1487
  symbol: Joi.string().allow(""),
1625
1488
  });
1626
1489
  }
1627
1490
 
1628
- /** @returns {CustomerDetails} */
1629
- static CustomerDetails() {
1491
+ /** @returns {CartDetailCoupon} */
1492
+ static CartDetailCoupon() {
1630
1493
  return Joi.object({
1631
- email: Joi.string().allow(""),
1632
- mobile: Joi.string().allow("").required(),
1633
- name: Joi.string().allow(""),
1494
+ cashback_amount: Joi.number(),
1495
+ cashback_message_primary: Joi.string().allow(""),
1496
+ cashback_message_secondary: Joi.string().allow(""),
1497
+ coupon_code: Joi.string().allow(""),
1498
+ coupon_description: Joi.string().allow(""),
1499
+ coupon_id: Joi.string().allow(""),
1500
+ coupon_subtitle: Joi.string().allow(""),
1501
+ coupon_title: Joi.string().allow(""),
1502
+ coupon_type: Joi.string().allow(""),
1503
+ coupon_value: Joi.number(),
1504
+ discount: Joi.number(),
1505
+ is_applied: Joi.boolean(),
1506
+ is_valid: Joi.boolean(),
1507
+ maximum_discount_value: Joi.number(),
1508
+ message: Joi.string().allow(""),
1509
+ minimum_cart_value: Joi.number(),
1634
1510
  });
1635
1511
  }
1636
1512
 
1637
- /** @returns {DeleteAddressResponse} */
1638
- static DeleteAddressResponse() {
1513
+ /** @returns {ChargesThreshold} */
1514
+ static ChargesThreshold() {
1639
1515
  return Joi.object({
1640
- id: Joi.string().allow(""),
1641
- is_deleted: Joi.boolean(),
1516
+ charges: Joi.number(),
1517
+ threshold: Joi.number(),
1642
1518
  });
1643
1519
  }
1644
1520
 
1645
- /** @returns {DeleteCartDetailResponse} */
1646
- static DeleteCartDetailResponse() {
1521
+ /** @returns {DeliveryChargesConfig} */
1522
+ static DeliveryChargesConfig() {
1647
1523
  return Joi.object({
1648
- message: Joi.string().allow(""),
1649
- success: Joi.boolean(),
1524
+ enabled: Joi.boolean(),
1525
+ charges: Joi.array().items(CartApplicationModel.ChargesThreshold()),
1650
1526
  });
1651
1527
  }
1652
1528
 
1653
- /** @returns {DeliveryChargesConfig} */
1654
- static DeliveryChargesConfig() {
1529
+ /** @returns {CartCommonConfig} */
1530
+ static CartCommonConfig() {
1655
1531
  return Joi.object({
1656
- charges: Joi.array().items(CartApplicationModel.ChargesThreshold()),
1657
- enabled: Joi.boolean(),
1532
+ delivery_charges_config: CartApplicationModel.DeliveryChargesConfig(),
1658
1533
  });
1659
1534
  }
1660
1535
 
1661
- /** @returns {DiscountRulesApp} */
1662
- static DiscountRulesApp() {
1536
+ /** @returns {CartDetailResponse} */
1537
+ static CartDetailResponse() {
1663
1538
  return Joi.object({
1664
- item_criteria: Joi.any(),
1665
- matched_buy_rules: Joi.array().items(Joi.string().allow("")),
1666
- offer: Joi.any(),
1667
- raw_offer: Joi.any(),
1539
+ cart_id: Joi.number(),
1540
+ uid: Joi.string().allow(""),
1541
+ applied_promo_details: Joi.array().items(
1542
+ CartApplicationModel.AppliedPromotion()
1543
+ ),
1544
+ checkout_mode: Joi.string().allow(""),
1545
+ pan_no: Joi.string().allow(""),
1546
+ is_valid: Joi.boolean(),
1547
+ id: Joi.string().allow(""),
1548
+ payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1549
+ delivery_promise: CartApplicationModel.ShipmentPromise(),
1550
+ comment: Joi.string().allow(""),
1551
+ items: Joi.array().items(CartApplicationModel.CartProductInfo()),
1552
+ delivery_charge_info: Joi.string().allow(""),
1553
+ common_config: CartApplicationModel.CartCommonConfig(),
1554
+ coupon: CartApplicationModel.CartDetailCoupon(),
1555
+ message: Joi.string().allow(""),
1556
+ notification: Joi.any(),
1557
+ staff_user_id: Joi.string().allow(""),
1558
+ success: Joi.boolean(),
1559
+ gstin: Joi.string().allow(""),
1560
+ restrict_checkout: Joi.boolean(),
1561
+ last_modified: Joi.string().allow(""),
1562
+ breakup_values: CartApplicationModel.CartBreakup(),
1563
+ currency: CartApplicationModel.CartCurrency(),
1564
+ coupon_text: Joi.string().allow(""),
1565
+ buy_now: Joi.boolean(),
1566
+ pan_config: Joi.any(),
1668
1567
  });
1669
1568
  }
1670
1569
 
1671
- /** @returns {DisplayBreakup} */
1672
- static DisplayBreakup() {
1570
+ /** @returns {AddProductCart} */
1571
+ static AddProductCart() {
1673
1572
  return Joi.object({
1674
- currency_code: Joi.string().allow(""),
1675
- currency_symbol: Joi.string().allow(""),
1573
+ article_assignment: Joi.any(),
1574
+ product_group_tags: Joi.array().items(Joi.string().allow("").allow(null)),
1575
+ extra_meta: Joi.any(),
1576
+ quantity: Joi.number(),
1577
+ _custom_json: Joi.any(),
1578
+ item_size: Joi.string().allow(""),
1579
+ store_id: Joi.number(),
1676
1580
  display: Joi.string().allow(""),
1677
- key: Joi.string().allow(""),
1678
- message: Joi.array().items(Joi.string().allow("")),
1679
- preset: Joi.number(),
1680
- value: Joi.number(),
1581
+ article_id: Joi.string().allow(""),
1582
+ parent_item_identifiers: Joi.array().items(
1583
+ Joi.object().pattern(/\S/, Joi.string().allow(""))
1584
+ ),
1585
+ seller_id: Joi.number(),
1586
+ pos: Joi.boolean(),
1587
+ item_id: Joi.number(),
1588
+ meta: Joi.any(),
1589
+ seller_identifier: Joi.string().allow(""),
1681
1590
  });
1682
1591
  }
1683
1592
 
1684
- /** @returns {FreeGiftItem} */
1685
- static FreeGiftItem() {
1593
+ /** @returns {AddCartRequest} */
1594
+ static AddCartRequest() {
1686
1595
  return Joi.object({
1687
- item_brand_name: Joi.string().allow(""),
1688
- item_id: Joi.number(),
1689
- item_images_url: Joi.array().items(Joi.string().allow("")),
1690
- item_name: Joi.string().allow(""),
1691
- item_price_details: Joi.any(),
1692
- item_slug: Joi.string().allow(""),
1596
+ items: Joi.array().items(CartApplicationModel.AddProductCart()),
1597
+ new_cart: Joi.boolean(),
1693
1598
  });
1694
1599
  }
1695
1600
 
1696
- /** @returns {FreeGiftItems} */
1697
- static FreeGiftItems() {
1601
+ /** @returns {AddCartDetailResponse} */
1602
+ static AddCartDetailResponse() {
1698
1603
  return Joi.object({
1699
- item_brand_name: Joi.string().allow(""),
1604
+ message: Joi.string().allow(""),
1605
+ partial: Joi.boolean(),
1606
+ cart: CartApplicationModel.CartDetailResponse(),
1607
+ success: Joi.boolean(),
1608
+ });
1609
+ }
1610
+
1611
+ /** @returns {UpdateProductCart} */
1612
+ static UpdateProductCart() {
1613
+ return Joi.object({
1614
+ extra_meta: Joi.any(),
1615
+ _custom_json: Joi.any(),
1616
+ quantity: Joi.number(),
1617
+ item_size: Joi.string().allow(""),
1618
+ item_index: Joi.number(),
1619
+ identifiers: CartApplicationModel.CartProductIdentifer().required(),
1620
+ article_id: Joi.string().allow(""),
1621
+ parent_item_identifiers: Joi.any(),
1700
1622
  item_id: Joi.number(),
1701
- item_images_url: Joi.array().items(Joi.string().allow("")),
1702
- item_name: Joi.string().allow(""),
1703
- item_price_details: Joi.any(),
1704
- item_slug: Joi.string().allow(""),
1623
+ meta: Joi.any(),
1705
1624
  });
1706
1625
  }
1707
1626
 
1708
- /** @returns {GeoLocation} */
1709
- static GeoLocation() {
1627
+ /** @returns {UpdateCartRequest} */
1628
+ static UpdateCartRequest() {
1710
1629
  return Joi.object({
1711
- latitude: Joi.number(),
1712
- longitude: Joi.number(),
1630
+ items: Joi.array().items(CartApplicationModel.UpdateProductCart()),
1631
+ operation: Joi.string().allow("").required(),
1713
1632
  });
1714
1633
  }
1715
1634
 
1716
- /** @returns {GetAddressesResponse} */
1717
- static GetAddressesResponse() {
1635
+ /** @returns {UpdateCartDetailResponse} */
1636
+ static UpdateCartDetailResponse() {
1718
1637
  return Joi.object({
1719
- address: Joi.array().items(CartApplicationModel.Address()),
1720
- pii_masking: Joi.boolean(),
1638
+ message: Joi.string().allow(""),
1639
+ cart: CartApplicationModel.CartDetailResponse(),
1640
+ success: Joi.boolean(),
1721
1641
  });
1722
1642
  }
1723
1643
 
1724
- /** @returns {GetCouponResponse} */
1725
- static GetCouponResponse() {
1644
+ /** @returns {DeleteCartDetailResponse} */
1645
+ static DeleteCartDetailResponse() {
1726
1646
  return Joi.object({
1727
- available_coupon_list: Joi.array().items(CartApplicationModel.Coupon()),
1728
- page: CartApplicationModel.PageCoupon(),
1647
+ message: Joi.string().allow(""),
1648
+ success: Joi.boolean(),
1729
1649
  });
1730
1650
  }
1731
1651
 
1732
- /** @returns {GetShareCartLinkRequest} */
1733
- static GetShareCartLinkRequest() {
1652
+ /** @returns {CartItemCountResponse} */
1653
+ static CartItemCountResponse() {
1734
1654
  return Joi.object({
1735
- id: Joi.string().allow(""),
1736
- meta: Joi.any(),
1655
+ user_cart_items_count: Joi.number(),
1737
1656
  });
1738
1657
  }
1739
1658
 
1740
- /** @returns {GetShareCartLinkResponse} */
1741
- static GetShareCartLinkResponse() {
1659
+ /** @returns {PageCoupon} */
1660
+ static PageCoupon() {
1742
1661
  return Joi.object({
1743
- share_url: Joi.string().allow(""),
1744
- token: Joi.string().allow(""),
1662
+ total_item_count: Joi.number(),
1663
+ has_next: Joi.boolean(),
1664
+ total: Joi.number(),
1665
+ current: Joi.number(),
1666
+ has_previous: Joi.boolean(),
1745
1667
  });
1746
1668
  }
1747
1669
 
1748
- /** @returns {GiftDetail} */
1749
- static GiftDetail() {
1670
+ /** @returns {Coupon} */
1671
+ static Coupon() {
1750
1672
  return Joi.object({
1751
- gift_message: Joi.string().allow(""),
1752
- is_gift_applied: Joi.boolean(),
1673
+ coupon_amount: Joi.number(),
1674
+ coupon_value: Joi.number(),
1675
+ title: Joi.string().allow(""),
1676
+ minimum_cart_value: Joi.number(),
1677
+ sub_title: Joi.string().allow(""),
1678
+ expires_on: Joi.string().allow(""),
1679
+ message: Joi.string().allow(""),
1680
+ coupon_type: Joi.string().allow("").allow(null),
1681
+ max_discount_value: Joi.number(),
1682
+ coupon_code: Joi.string().allow(""),
1683
+ is_applicable: Joi.boolean(),
1684
+ description: Joi.string().allow("").allow(null),
1685
+ is_applied: Joi.boolean(),
1686
+ start_date: Joi.string().allow("").allow(null),
1687
+ end_date: Joi.string().allow("").allow(null),
1688
+ coupon_applicable_message: Joi.string().allow(""),
1753
1689
  });
1754
1690
  }
1755
1691
 
1756
- /** @returns {LadderOfferItem} */
1757
- static LadderOfferItem() {
1692
+ /** @returns {GetCouponResponse} */
1693
+ static GetCouponResponse() {
1758
1694
  return Joi.object({
1759
- margin: Joi.number(),
1760
- max_quantity: Joi.number(),
1761
- min_quantity: Joi.number(),
1762
- price: CartApplicationModel.LadderPrice(),
1763
- type: Joi.string().allow(""),
1695
+ page: CartApplicationModel.PageCoupon(),
1696
+ available_coupon_list: Joi.array().items(CartApplicationModel.Coupon()),
1764
1697
  });
1765
1698
  }
1766
1699
 
1767
- /** @returns {LadderPrice} */
1768
- static LadderPrice() {
1700
+ /** @returns {ApplyCouponRequest} */
1701
+ static ApplyCouponRequest() {
1769
1702
  return Joi.object({
1770
- currency_code: Joi.string().allow(""),
1771
- currency_symbol: Joi.string().allow(""),
1772
- effective: Joi.number(),
1773
- marked: Joi.number(),
1774
- offer_price: Joi.number(),
1703
+ coupon_code: Joi.string().allow("").required(),
1775
1704
  });
1776
1705
  }
1777
1706
 
1778
- /** @returns {LadderPriceOffer} */
1779
- static LadderPriceOffer() {
1707
+ /** @returns {OfferPrice} */
1708
+ static OfferPrice() {
1780
1709
  return Joi.object({
1781
- buy_rules: Joi.any(),
1782
- calculate_on: Joi.string().allow(""),
1783
- description: Joi.string().allow(""),
1784
- discount_rules: Joi.array().items(Joi.any()),
1785
- free_gift_items: Joi.array().items(CartApplicationModel.FreeGiftItems()),
1786
- id: Joi.string().allow(""),
1787
- offer_prices: Joi.array().items(CartApplicationModel.LadderOfferItem()),
1788
- offer_text: Joi.string().allow(""),
1789
- promotion_group: Joi.string().allow(""),
1790
- valid_till: Joi.string().allow(""),
1710
+ currency_symbol: Joi.string().allow(""),
1711
+ bulk_effective: Joi.number(),
1712
+ currency_code: Joi.string().allow(""),
1713
+ effective: Joi.number(),
1714
+ marked: Joi.number(),
1791
1715
  });
1792
1716
  }
1793
1717
 
1794
- /** @returns {LadderPriceOffers} */
1795
- static LadderPriceOffers() {
1718
+ /** @returns {OfferItem} */
1719
+ static OfferItem() {
1796
1720
  return Joi.object({
1797
- available_offers: Joi.array().items(
1798
- CartApplicationModel.LadderPriceOffer()
1799
- ),
1800
- currency: CartApplicationModel.CurrencyInfo(),
1721
+ price: CartApplicationModel.OfferPrice(),
1722
+ margin: Joi.number(),
1723
+ quantity: Joi.number(),
1724
+ best: Joi.boolean(),
1725
+ total: Joi.number(),
1726
+ auto_applied: Joi.boolean(),
1727
+ type: Joi.string().allow(""),
1801
1728
  });
1802
1729
  }
1803
1730
 
1804
- /** @returns {LoyaltyPoints} */
1805
- static LoyaltyPoints() {
1731
+ /** @returns {OfferSeller} */
1732
+ static OfferSeller() {
1806
1733
  return Joi.object({
1807
- applicable: Joi.number(),
1808
- description: Joi.string().allow(""),
1809
- is_applied: Joi.boolean(),
1810
- total: Joi.number(),
1734
+ uid: Joi.number(),
1735
+ name: Joi.string().allow(""),
1811
1736
  });
1812
1737
  }
1813
1738
 
1814
- /** @returns {OfferItem} */
1815
- static OfferItem() {
1739
+ /** @returns {BulkPriceOffer} */
1740
+ static BulkPriceOffer() {
1816
1741
  return Joi.object({
1817
- auto_applied: Joi.boolean(),
1818
- best: Joi.boolean(),
1819
- margin: Joi.number(),
1820
- price: CartApplicationModel.OfferPrice(),
1821
- quantity: Joi.number(),
1822
- total: Joi.number(),
1823
- type: Joi.string().allow(""),
1742
+ offers: Joi.array().items(CartApplicationModel.OfferItem()),
1743
+ seller: CartApplicationModel.OfferSeller(),
1824
1744
  });
1825
1745
  }
1826
1746
 
1827
- /** @returns {OfferPrice} */
1828
- static OfferPrice() {
1747
+ /** @returns {BulkPriceResponse} */
1748
+ static BulkPriceResponse() {
1829
1749
  return Joi.object({
1830
- bulk_effective: Joi.number(),
1831
- currency_code: Joi.string().allow(""),
1832
- currency_symbol: Joi.string().allow(""),
1833
- effective: Joi.number(),
1834
- marked: Joi.number(),
1750
+ data: Joi.array().items(CartApplicationModel.BulkPriceOffer()),
1835
1751
  });
1836
1752
  }
1837
1753
 
1838
- /** @returns {OfferSeller} */
1839
- static OfferSeller() {
1754
+ /** @returns {RewardPointRequest} */
1755
+ static RewardPointRequest() {
1840
1756
  return Joi.object({
1841
- name: Joi.string().allow(""),
1842
- uid: Joi.number(),
1757
+ points: Joi.boolean().required(),
1843
1758
  });
1844
1759
  }
1845
1760
 
1846
- /** @returns {OperationErrorResponse} */
1847
- static OperationErrorResponse() {
1761
+ /** @returns {GeoLocation} */
1762
+ static GeoLocation() {
1848
1763
  return Joi.object({
1849
- message: Joi.string().allow(""),
1850
- success: Joi.boolean(),
1764
+ latitude: Joi.number(),
1765
+ longitude: Joi.number(),
1851
1766
  });
1852
1767
  }
1853
1768
 
1854
- /** @returns {Ownership} */
1855
- static Ownership() {
1769
+ /** @returns {Address} */
1770
+ static Address() {
1856
1771
  return Joi.object({
1857
- payable_by: Joi.string().allow(""),
1858
- payable_category: Joi.string().allow(""),
1772
+ country_iso_code: Joi.string().allow(""),
1773
+ area: Joi.string().allow(""),
1774
+ phone: Joi.string().allow(""),
1775
+ country_phone_code: Joi.string().allow(""),
1776
+ checkout_mode: Joi.string().allow(""),
1777
+ address: Joi.string().allow(""),
1778
+ area_code_slug: Joi.string().allow(""),
1779
+ geo_location: CartApplicationModel.GeoLocation(),
1780
+ id: Joi.string().allow(""),
1781
+ _custom_json: Joi.any(),
1782
+ city: Joi.string().allow(""),
1783
+ sector: Joi.string().allow(""),
1784
+ state_code: Joi.string().allow(""),
1785
+ created_by_user_id: Joi.string().allow(""),
1786
+ landmark: Joi.string().allow(""),
1787
+ user_id: Joi.string().allow(""),
1788
+ name: Joi.string().allow(""),
1789
+ google_map_point: Joi.any(),
1790
+ is_active: Joi.boolean(),
1791
+ tags: Joi.array().items(Joi.string().allow("")),
1792
+ country_code: Joi.string().allow(""),
1793
+ address_type: Joi.string().allow(""),
1794
+ country: Joi.string().allow(""),
1795
+ is_default_address: Joi.boolean(),
1796
+ area_code: Joi.string().allow(""),
1797
+ email: Joi.string().allow(""),
1798
+ state: Joi.string().allow(""),
1799
+ meta: Joi.any(),
1859
1800
  });
1860
1801
  }
1861
1802
 
1862
- /** @returns {PageCoupon} */
1863
- static PageCoupon() {
1803
+ /** @returns {GetAddressesResponse} */
1804
+ static GetAddressesResponse() {
1864
1805
  return Joi.object({
1865
- current: Joi.number(),
1866
- has_next: Joi.boolean(),
1867
- has_previous: Joi.boolean(),
1868
- total: Joi.number(),
1869
- total_item_count: Joi.number(),
1806
+ pii_masking: Joi.boolean(),
1807
+ address: Joi.array().items(CartApplicationModel.Address()),
1870
1808
  });
1871
1809
  }
1872
1810
 
1873
- /** @returns {PaymentCouponValidate} */
1874
- static PaymentCouponValidate() {
1811
+ /** @returns {SaveAddressResponse} */
1812
+ static SaveAddressResponse() {
1875
1813
  return Joi.object({
1876
- coupon_validity: CartApplicationModel.CouponValidity(),
1877
- message: Joi.string().allow(""),
1878
- success: Joi.boolean().required(),
1814
+ id: Joi.string().allow(""),
1815
+ success: Joi.boolean(),
1816
+ is_default_address: Joi.boolean(),
1879
1817
  });
1880
1818
  }
1881
1819
 
1882
- /** @returns {PaymentMeta} */
1883
- static PaymentMeta() {
1820
+ /** @returns {UpdateAddressResponse} */
1821
+ static UpdateAddressResponse() {
1884
1822
  return Joi.object({
1885
- merchant_code: Joi.string().allow(""),
1886
- payment_gateway: Joi.string().allow(""),
1887
- payment_identifier: Joi.string().allow("").allow(null),
1888
- type: Joi.string().allow(""),
1823
+ is_updated: Joi.boolean(),
1824
+ id: Joi.string().allow(""),
1825
+ success: Joi.boolean(),
1826
+ is_default_address: Joi.boolean(),
1889
1827
  });
1890
1828
  }
1891
1829
 
1892
- /** @returns {PaymentMethod} */
1893
- static PaymentMethod() {
1830
+ /** @returns {DeleteAddressResponse} */
1831
+ static DeleteAddressResponse() {
1894
1832
  return Joi.object({
1895
- amount: Joi.number().allow(null),
1896
- mode: Joi.string().allow("").required(),
1897
- name: Joi.string().allow(""),
1898
- payment: Joi.string().allow(""),
1899
- payment_extra_identifiers: Joi.any(),
1900
- payment_meta: CartApplicationModel.PaymentMeta().required(),
1833
+ id: Joi.string().allow(""),
1834
+ is_deleted: Joi.boolean(),
1901
1835
  });
1902
1836
  }
1903
1837
 
1904
- /** @returns {PaymentSelectionLock} */
1905
- static PaymentSelectionLock() {
1838
+ /** @returns {SelectCartAddressRequest} */
1839
+ static SelectCartAddressRequest() {
1906
1840
  return Joi.object({
1907
- default_options: Joi.string().allow(""),
1908
- enabled: Joi.boolean(),
1909
- payment_identifier: Joi.string().allow(""),
1841
+ id: Joi.string().allow(""),
1842
+ billing_address_id: Joi.string().allow(""),
1843
+ cart_id: Joi.string().allow(""),
1910
1844
  });
1911
1845
  }
1912
1846
 
1913
- /** @returns {ProductAction} */
1914
- static ProductAction() {
1847
+ /** @returns {UpdateCartPaymentRequest} */
1848
+ static UpdateCartPaymentRequest() {
1915
1849
  return Joi.object({
1916
- query: CartApplicationModel.ActionQuery(),
1917
- type: Joi.string().allow(""),
1918
- url: Joi.string().allow(""),
1850
+ id: Joi.string().allow(""),
1851
+ payment_identifier: Joi.string().allow("").allow(null),
1852
+ address_id: Joi.string().allow(""),
1853
+ merchant_code: Joi.string().allow(""),
1854
+ aggregator_name: Joi.string().allow(""),
1855
+ payment_mode: Joi.string().allow(""),
1919
1856
  });
1920
1857
  }
1921
1858
 
1922
- /** @returns {ProductArticle} */
1923
- static ProductArticle() {
1859
+ /** @returns {CouponValidity} */
1860
+ static CouponValidity() {
1924
1861
  return Joi.object({
1925
- _custom_json: Joi.any(),
1926
- cart_item_meta: Joi.any(),
1927
- extra_meta: Joi.any(),
1928
- gift_card: Joi.any(),
1929
- identifier: Joi.any(),
1930
- is_gift_visible: Joi.boolean(),
1931
- meta: Joi.any(),
1932
- mto_quantity: Joi.number(),
1933
- parent_item_identifiers: Joi.any(),
1934
- price: CartApplicationModel.ArticlePriceInfo(),
1935
- product_group_tags: Joi.array().items(Joi.string().allow("")),
1936
- quantity: Joi.number(),
1937
- seller: CartApplicationModel.BaseInfo(),
1938
- seller_identifier: Joi.string().allow(""),
1939
- size: Joi.string().allow(""),
1940
- store: CartApplicationModel.StoreInfo(),
1941
- tags: Joi.array().items(Joi.string().allow("")),
1942
- type: Joi.string().allow(""),
1943
- uid: Joi.string().allow(""),
1862
+ title: Joi.string().allow(""),
1863
+ discount: Joi.number(),
1864
+ next_validation_required: Joi.boolean().allow(null),
1865
+ valid: Joi.boolean(),
1866
+ display_message_en: Joi.string().allow("").allow(null),
1867
+ code: Joi.string().allow("").allow(null),
1944
1868
  });
1945
1869
  }
1946
1870
 
1947
- /** @returns {ProductAvailability} */
1948
- static ProductAvailability() {
1871
+ /** @returns {PaymentCouponValidate} */
1872
+ static PaymentCouponValidate() {
1949
1873
  return Joi.object({
1950
- available_sizes: Joi.array().items(
1951
- CartApplicationModel.ProductAvailabilitySize()
1952
- ),
1953
- deliverable: Joi.boolean(),
1954
- is_valid: Joi.boolean(),
1955
- other_store_quantity: Joi.number(),
1956
- out_of_stock: Joi.boolean(),
1957
- sizes: Joi.array().items(Joi.string().allow("")),
1874
+ message: Joi.string().allow(""),
1875
+ coupon_validity: CartApplicationModel.CouponValidity(),
1876
+ success: Joi.boolean().required(),
1958
1877
  });
1959
1878
  }
1960
1879
 
1961
- /** @returns {ProductAvailabilitySize} */
1962
- static ProductAvailabilitySize() {
1880
+ /** @returns {ShipmentResponse} */
1881
+ static ShipmentResponse() {
1963
1882
  return Joi.object({
1964
- display: Joi.string().allow(""),
1965
- is_available: Joi.boolean(),
1966
- value: Joi.string().allow(""),
1883
+ shipments: Joi.number(),
1884
+ promise: CartApplicationModel.ShipmentPromise(),
1885
+ order_type: Joi.string().allow(""),
1886
+ box_type: Joi.string().allow("").allow(null),
1887
+ shipment_type: Joi.string().allow(""),
1888
+ dp_options: Joi.any().allow(null),
1889
+ dp_id: Joi.string().allow("").allow(null),
1890
+ items: Joi.array().items(CartApplicationModel.CartProductInfo()),
1891
+ fulfillment_type: Joi.string().allow(""),
1892
+ fulfillment_id: Joi.number(),
1967
1893
  });
1968
1894
  }
1969
1895
 
1970
- /** @returns {ProductImage} */
1971
- static ProductImage() {
1896
+ /** @returns {CartShipmentsResponse} */
1897
+ static CartShipmentsResponse() {
1972
1898
  return Joi.object({
1973
- aspect_ratio: Joi.string().allow(""),
1974
- secure_url: Joi.string().allow(""),
1975
- url: Joi.string().allow(""),
1899
+ delivery_charge_info: Joi.string().allow(""),
1900
+ checkout_mode: Joi.string().allow(""),
1901
+ message: Joi.string().allow(""),
1902
+ gstin: Joi.string().allow(""),
1903
+ restrict_checkout: Joi.boolean(),
1904
+ last_modified: Joi.string().allow(""),
1905
+ cart_id: Joi.number(),
1906
+ is_valid: Joi.boolean(),
1907
+ breakup_values: CartApplicationModel.CartBreakup(),
1908
+ currency: CartApplicationModel.CartCurrency(),
1909
+ id: Joi.string().allow(""),
1910
+ shipments: Joi.array().items(CartApplicationModel.ShipmentResponse()),
1911
+ payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1912
+ coupon_text: Joi.string().allow(""),
1913
+ delivery_promise: CartApplicationModel.ShipmentPromise(),
1914
+ error: Joi.boolean(),
1915
+ comment: Joi.string().allow(""),
1916
+ buy_now: Joi.boolean(),
1917
+ uid: Joi.string().allow(""),
1976
1918
  });
1977
1919
  }
1978
1920
 
1979
- /** @returns {ProductPrice} */
1980
- static ProductPrice() {
1921
+ /** @returns {CartCheckoutCustomMeta} */
1922
+ static CartCheckoutCustomMeta() {
1981
1923
  return Joi.object({
1982
- add_on: Joi.number(),
1983
- currency_code: Joi.string().allow(""),
1984
- currency_symbol: Joi.string().allow(""),
1985
- effective: Joi.number(),
1986
- marked: Joi.number(),
1987
- selling: Joi.number(),
1924
+ key: Joi.string().allow("").required(),
1925
+ value: Joi.string().allow("").required(),
1988
1926
  });
1989
1927
  }
1990
1928
 
1991
- /** @returns {ProductPriceInfo} */
1992
- static ProductPriceInfo() {
1929
+ /** @returns {CustomerDetails} */
1930
+ static CustomerDetails() {
1993
1931
  return Joi.object({
1994
- base: CartApplicationModel.ProductPrice(),
1995
- converted: CartApplicationModel.ProductPrice(),
1932
+ email: Joi.string().allow(""),
1933
+ mobile: Joi.string().allow("").required(),
1934
+ name: Joi.string().allow(""),
1996
1935
  });
1997
1936
  }
1998
1937
 
1999
- /** @returns {ProductPricePerUnit} */
2000
- static ProductPricePerUnit() {
1938
+ /** @returns {StaffCheckout} */
1939
+ static StaffCheckout() {
2001
1940
  return Joi.object({
2002
- add_on: Joi.number(),
2003
- currency_code: Joi.string().allow(""),
2004
- currency_symbol: Joi.string().allow(""),
2005
- effective: Joi.number(),
2006
- marked: Joi.number(),
2007
- selling_price: Joi.number(),
1941
+ employee_code: Joi.string().allow(""),
1942
+ user: Joi.string().allow("").required(),
1943
+ last_name: Joi.string().allow("").required(),
1944
+ first_name: Joi.string().allow("").required(),
1945
+ _id: Joi.string().allow("").required(),
2008
1946
  });
2009
1947
  }
2010
1948
 
2011
- /** @returns {ProductPricePerUnitInfo} */
2012
- static ProductPricePerUnitInfo() {
1949
+ /** @returns {CartCheckoutDetailRequest} */
1950
+ static CartCheckoutDetailRequest() {
2013
1951
  return Joi.object({
2014
- base: CartApplicationModel.ProductPricePerUnit(),
2015
- converted: CartApplicationModel.ProductPricePerUnit(),
1952
+ custom_meta: Joi.array().items(
1953
+ CartApplicationModel.CartCheckoutCustomMeta()
1954
+ ),
1955
+ customer_details: Joi.any(),
1956
+ merchant_code: Joi.string().allow(""),
1957
+ id: Joi.string().allow(""),
1958
+ payment_auto_confirm: Joi.boolean(),
1959
+ payment_mode: Joi.string().allow("").required(),
1960
+ aggregator: Joi.string().allow(""),
1961
+ address_id: Joi.string().allow(""),
1962
+ callback_url: Joi.string().allow(""),
1963
+ delivery_address: Joi.any(),
1964
+ staff: CartApplicationModel.StaffCheckout(),
1965
+ order_type: Joi.string().allow(""),
1966
+ ordering_store: Joi.number(),
1967
+ extra_meta: Joi.any(),
1968
+ payment_identifier: Joi.string().allow(""),
1969
+ billing_address: Joi.any(),
1970
+ payment_params: Joi.any(),
1971
+ billing_address_id: Joi.string().allow(""),
1972
+ meta: Joi.any(),
1973
+ payment_extra_identifiers: Joi.any(),
1974
+ iin: Joi.string().allow(""),
1975
+ network: Joi.string().allow(""),
1976
+ type: Joi.string().allow(""),
1977
+ card_id: Joi.string().allow(""),
2016
1978
  });
2017
1979
  }
2018
1980
 
2019
- /** @returns {PromiseFormatted} */
2020
- static PromiseFormatted() {
1981
+ /** @returns {CheckCart} */
1982
+ static CheckCart() {
2021
1983
  return Joi.object({
2022
- max: Joi.string().allow(""),
2023
- min: Joi.string().allow(""),
1984
+ checkout_mode: Joi.string().allow(""),
1985
+ user_type: Joi.string().allow(""),
1986
+ cod_message: Joi.string().allow(""),
1987
+ cart_id: Joi.number(),
1988
+ is_valid: Joi.boolean(),
1989
+ delivery_charges: Joi.number(),
1990
+ id: Joi.string().allow(""),
1991
+ payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
1992
+ error_message: Joi.string().allow(""),
1993
+ delivery_promise: CartApplicationModel.ShipmentPromise(),
1994
+ comment: Joi.string().allow(""),
1995
+ items: Joi.array().items(CartApplicationModel.CartProductInfo()),
1996
+ uid: Joi.string().allow(""),
1997
+ delivery_charge_order_value: Joi.number(),
1998
+ delivery_charge_info: Joi.string().allow(""),
1999
+ cod_available: Joi.boolean(),
2000
+ success: Joi.boolean(),
2001
+ store_code: Joi.string().allow(""),
2002
+ message: Joi.string().allow(""),
2003
+ gstin: Joi.string().allow(""),
2004
+ restrict_checkout: Joi.boolean(),
2005
+ last_modified: Joi.string().allow(""),
2006
+ order_id: Joi.string().allow(""),
2007
+ breakup_values: CartApplicationModel.CartBreakup(),
2008
+ currency: CartApplicationModel.CartCurrency(),
2009
+ store_emps: Joi.array().items(Joi.any()),
2010
+ coupon_text: Joi.string().allow(""),
2011
+ buy_now: Joi.boolean(),
2012
+ cod_charges: Joi.number(),
2024
2013
  });
2025
2014
  }
2026
2015
 
2027
- /** @returns {PromiseISOFormat} */
2028
- static PromiseISOFormat() {
2016
+ /** @returns {CartCheckoutResponse} */
2017
+ static CartCheckoutResponse() {
2029
2018
  return Joi.object({
2030
- max: Joi.string().allow(""),
2031
- min: Joi.string().allow(""),
2019
+ payment_confirm_url: Joi.string().allow(""),
2020
+ app_intercept_url: Joi.string().allow(""),
2021
+ success: Joi.boolean(),
2022
+ callback_url: Joi.string().allow(""),
2023
+ message: Joi.string().allow(""),
2024
+ data: Joi.any(),
2025
+ order_id: Joi.string().allow(""),
2026
+ cart: CartApplicationModel.CheckCart(),
2032
2027
  });
2033
2028
  }
2034
2029
 
2035
- /** @returns {PromiseTimestamp} */
2036
- static PromiseTimestamp() {
2030
+ /** @returns {GiftDetail} */
2031
+ static GiftDetail() {
2037
2032
  return Joi.object({
2038
- max: Joi.number(),
2039
- min: Joi.number(),
2033
+ is_gift_applied: Joi.boolean(),
2034
+ gift_message: Joi.string().allow(""),
2040
2035
  });
2041
2036
  }
2042
2037
 
2043
- /** @returns {PromoMeta} */
2044
- static PromoMeta() {
2038
+ /** @returns {ArticleGiftDetail} */
2039
+ static ArticleGiftDetail() {
2045
2040
  return Joi.object({
2046
- message: Joi.string().allow(""),
2041
+ article_id: CartApplicationModel.GiftDetail(),
2047
2042
  });
2048
2043
  }
2049
2044
 
2050
- /** @returns {PromotionOffer} */
2051
- static PromotionOffer() {
2045
+ /** @returns {CartMetaRequest} */
2046
+ static CartMetaRequest() {
2052
2047
  return Joi.object({
2053
- buy_rules: Joi.any(),
2054
- description: Joi.string().allow(""),
2055
- discount_rules: Joi.array().items(Joi.any()),
2056
- free_gift_items: Joi.array().items(CartApplicationModel.FreeGiftItems()),
2057
- id: Joi.string().allow(""),
2058
- offer_text: Joi.string().allow(""),
2059
- promotion_group: Joi.string().allow(""),
2060
- valid_till: Joi.string().allow(""),
2048
+ delivery_slots: Joi.any(),
2049
+ gift_details: CartApplicationModel.ArticleGiftDetail(),
2050
+ pick_up_customer_details: Joi.any(),
2051
+ checkout_mode: Joi.string().allow(""),
2052
+ comment: Joi.string().allow(""),
2053
+ gstin: Joi.string().allow(""),
2061
2054
  });
2062
2055
  }
2063
2056
 
2064
- /** @returns {PromotionOffersResponse} */
2065
- static PromotionOffersResponse() {
2057
+ /** @returns {CartMetaResponse} */
2058
+ static CartMetaResponse() {
2066
2059
  return Joi.object({
2067
- available_promotions: Joi.array().items(
2068
- CartApplicationModel.PromotionOffer()
2069
- ),
2060
+ message: Joi.string().allow(""),
2061
+ is_valid: Joi.boolean(),
2070
2062
  });
2071
2063
  }
2072
2064
 
2073
- /** @returns {RawBreakup} */
2074
- static RawBreakup() {
2065
+ /** @returns {CartMetaMissingResponse} */
2066
+ static CartMetaMissingResponse() {
2075
2067
  return Joi.object({
2076
- cod_charge: Joi.number(),
2077
- convenience_fee: Joi.number(),
2078
- coupon: Joi.number(),
2079
- delivery_charge: Joi.number(),
2080
- discount: Joi.number(),
2081
- fynd_cash: Joi.number(),
2082
- gift_card: Joi.number(),
2083
- gst_charges: Joi.number(),
2084
- mop_total: Joi.number(),
2085
- mrp_total: Joi.number(),
2086
- subtotal: Joi.number(),
2087
- total: Joi.number(),
2088
- total_charge: Joi.number(),
2089
- vog: Joi.number(),
2090
- you_saved: Joi.number(),
2068
+ errors: Joi.array().items(Joi.string().allow("")),
2091
2069
  });
2092
2070
  }
2093
2071
 
2094
- /** @returns {RewardPointRequest} */
2095
- static RewardPointRequest() {
2072
+ /** @returns {GetShareCartLinkRequest} */
2073
+ static GetShareCartLinkRequest() {
2096
2074
  return Joi.object({
2097
- points: Joi.boolean().required(),
2075
+ id: Joi.string().allow(""),
2076
+ meta: Joi.any(),
2098
2077
  });
2099
2078
  }
2100
2079
 
2101
- /** @returns {SaveAddressResponse} */
2102
- static SaveAddressResponse() {
2080
+ /** @returns {GetShareCartLinkResponse} */
2081
+ static GetShareCartLinkResponse() {
2103
2082
  return Joi.object({
2104
- id: Joi.string().allow(""),
2105
- is_default_address: Joi.boolean(),
2106
- success: Joi.boolean(),
2083
+ token: Joi.string().allow(""),
2084
+ share_url: Joi.string().allow(""),
2107
2085
  });
2108
2086
  }
2109
2087
 
2110
- /** @returns {SelectCartAddressRequest} */
2111
- static SelectCartAddressRequest() {
2088
+ /** @returns {SharedCartDetails} */
2089
+ static SharedCartDetails() {
2112
2090
  return Joi.object({
2113
- billing_address_id: Joi.string().allow(""),
2114
- cart_id: Joi.string().allow(""),
2115
- id: Joi.string().allow(""),
2091
+ token: Joi.string().allow(""),
2092
+ user: Joi.any(),
2093
+ created_on: Joi.string().allow(""),
2094
+ source: Joi.any(),
2095
+ meta: Joi.any(),
2116
2096
  });
2117
2097
  }
2118
2098
 
2119
2099
  /** @returns {SharedCart} */
2120
2100
  static SharedCart() {
2121
2101
  return Joi.object({
2122
- breakup_values: CartApplicationModel.CartBreakup(),
2123
- buy_now: Joi.boolean(),
2124
- cart_id: Joi.number(),
2125
2102
  checkout_mode: Joi.string().allow(""),
2126
- comment: Joi.string().allow(""),
2127
- coupon_text: Joi.string().allow(""),
2128
- currency: CartApplicationModel.CartCurrency(),
2129
- delivery_charge_info: Joi.string().allow(""),
2130
- delivery_promise: CartApplicationModel.ShipmentPromise(),
2131
- gstin: Joi.string().allow(""),
2132
- id: Joi.string().allow(""),
2103
+ cart_id: Joi.number(),
2133
2104
  is_valid: Joi.boolean(),
2105
+ id: Joi.string().allow(""),
2106
+ payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
2107
+ delivery_promise: CartApplicationModel.ShipmentPromise(),
2108
+ comment: Joi.string().allow(""),
2134
2109
  items: Joi.array().items(CartApplicationModel.CartProductInfo()),
2135
- last_modified: Joi.string().allow(""),
2110
+ uid: Joi.string().allow(""),
2111
+ delivery_charge_info: Joi.string().allow(""),
2136
2112
  message: Joi.string().allow(""),
2137
- payment_selection_lock: CartApplicationModel.PaymentSelectionLock(),
2138
- restrict_checkout: Joi.boolean(),
2113
+ gstin: Joi.string().allow(""),
2139
2114
  shared_cart_details: CartApplicationModel.SharedCartDetails(),
2140
- uid: Joi.string().allow(""),
2115
+ restrict_checkout: Joi.boolean(),
2116
+ last_modified: Joi.string().allow(""),
2117
+ breakup_values: CartApplicationModel.CartBreakup(),
2118
+ currency: CartApplicationModel.CartCurrency(),
2119
+ coupon_text: Joi.string().allow(""),
2120
+ buy_now: Joi.boolean(),
2141
2121
  });
2142
2122
  }
2143
2123
 
2144
- /** @returns {SharedCartDetails} */
2145
- static SharedCartDetails() {
2124
+ /** @returns {SharedCartResponse} */
2125
+ static SharedCartResponse() {
2146
2126
  return Joi.object({
2147
- created_on: Joi.string().allow(""),
2148
- meta: Joi.any(),
2149
- source: Joi.any(),
2150
- token: Joi.string().allow(""),
2151
- user: Joi.any(),
2127
+ error: Joi.string().allow(""),
2128
+ cart: CartApplicationModel.SharedCart(),
2152
2129
  });
2153
2130
  }
2154
2131
 
2155
- /** @returns {SharedCartResponse} */
2156
- static SharedCartResponse() {
2132
+ /** @returns {FreeGiftItems} */
2133
+ static FreeGiftItems() {
2157
2134
  return Joi.object({
2158
- cart: CartApplicationModel.SharedCart(),
2159
- error: Joi.string().allow(""),
2135
+ item_slug: Joi.string().allow(""),
2136
+ item_name: Joi.string().allow(""),
2137
+ item_price_details: Joi.any(),
2138
+ item_brand_name: Joi.string().allow(""),
2139
+ item_id: Joi.number(),
2140
+ item_images_url: Joi.array().items(Joi.string().allow("")),
2160
2141
  });
2161
2142
  }
2162
2143
 
2163
- /** @returns {ShipmentPromise} */
2164
- static ShipmentPromise() {
2144
+ /** @returns {PromotionOffer} */
2145
+ static PromotionOffer() {
2165
2146
  return Joi.object({
2166
- formatted: CartApplicationModel.PromiseFormatted(),
2167
- iso: CartApplicationModel.PromiseISOFormat(),
2168
- timestamp: CartApplicationModel.PromiseTimestamp(),
2147
+ id: Joi.string().allow(""),
2148
+ buy_rules: Joi.any(),
2149
+ offer_text: Joi.string().allow(""),
2150
+ promotion_group: Joi.string().allow(""),
2151
+ valid_till: Joi.string().allow(""),
2152
+ discount_rules: Joi.array().items(Joi.any()),
2153
+ free_gift_items: Joi.array().items(CartApplicationModel.FreeGiftItems()),
2154
+ description: Joi.string().allow(""),
2169
2155
  });
2170
2156
  }
2171
2157
 
2172
- /** @returns {ShipmentResponse} */
2173
- static ShipmentResponse() {
2158
+ /** @returns {PromotionOffersResponse} */
2159
+ static PromotionOffersResponse() {
2174
2160
  return Joi.object({
2175
- box_type: Joi.string().allow("").allow(null),
2176
- dp_id: Joi.string().allow("").allow(null),
2177
- dp_options: Joi.any().allow(null),
2178
- fulfillment_id: Joi.number(),
2179
- fulfillment_type: Joi.string().allow(""),
2180
- items: Joi.array().items(CartApplicationModel.CartProductInfo()),
2181
- order_type: Joi.string().allow(""),
2182
- promise: CartApplicationModel.ShipmentPromise(),
2183
- shipment_type: Joi.string().allow(""),
2184
- shipments: Joi.number(),
2161
+ available_promotions: Joi.array().items(
2162
+ CartApplicationModel.PromotionOffer()
2163
+ ),
2185
2164
  });
2186
2165
  }
2187
2166
 
2188
- /** @returns {StaffCheckout} */
2189
- static StaffCheckout() {
2167
+ /** @returns {OperationErrorResponse} */
2168
+ static OperationErrorResponse() {
2190
2169
  return Joi.object({
2191
- _id: Joi.string().allow("").required(),
2192
- employee_code: Joi.string().allow(""),
2193
- first_name: Joi.string().allow("").required(),
2194
- last_name: Joi.string().allow("").required(),
2195
- user: Joi.string().allow("").required(),
2170
+ message: Joi.string().allow(""),
2171
+ success: Joi.boolean(),
2196
2172
  });
2197
2173
  }
2198
2174
 
2199
- /** @returns {StoreInfo} */
2200
- static StoreInfo() {
2175
+ /** @returns {LadderPrice} */
2176
+ static LadderPrice() {
2201
2177
  return Joi.object({
2202
- name: Joi.string().allow(""),
2203
- store_code: Joi.string().allow(""),
2204
- uid: Joi.number(),
2178
+ currency_symbol: Joi.string().allow(""),
2179
+ offer_price: Joi.number(),
2180
+ currency_code: Joi.string().allow(""),
2181
+ effective: Joi.number(),
2182
+ marked: Joi.number(),
2205
2183
  });
2206
2184
  }
2207
2185
 
2208
- /** @returns {Tags} */
2209
- static Tags() {
2186
+ /** @returns {LadderOfferItem} */
2187
+ static LadderOfferItem() {
2210
2188
  return Joi.object({
2211
- tags: Joi.any(),
2189
+ price: CartApplicationModel.LadderPrice(),
2190
+ margin: Joi.number(),
2191
+ max_quantity: Joi.number(),
2192
+ min_quantity: Joi.number(),
2193
+ type: Joi.string().allow(""),
2212
2194
  });
2213
2195
  }
2214
2196
 
2215
- /** @returns {UpdateAddressResponse} */
2216
- static UpdateAddressResponse() {
2197
+ /** @returns {LadderPriceOffer} */
2198
+ static LadderPriceOffer() {
2217
2199
  return Joi.object({
2218
2200
  id: Joi.string().allow(""),
2219
- is_default_address: Joi.boolean(),
2220
- is_updated: Joi.boolean(),
2221
- success: Joi.boolean(),
2201
+ buy_rules: Joi.any(),
2202
+ calculate_on: Joi.string().allow(""),
2203
+ offer_text: Joi.string().allow(""),
2204
+ promotion_group: Joi.string().allow(""),
2205
+ valid_till: Joi.string().allow(""),
2206
+ discount_rules: Joi.array().items(Joi.any()),
2207
+ offer_prices: Joi.array().items(CartApplicationModel.LadderOfferItem()),
2208
+ free_gift_items: Joi.array().items(CartApplicationModel.FreeGiftItems()),
2209
+ description: Joi.string().allow(""),
2222
2210
  });
2223
2211
  }
2224
2212
 
2225
- /** @returns {UpdateCartDetailResponse} */
2226
- static UpdateCartDetailResponse() {
2213
+ /** @returns {CurrencyInfo} */
2214
+ static CurrencyInfo() {
2227
2215
  return Joi.object({
2228
- cart: CartApplicationModel.CartDetailResponse(),
2229
- message: Joi.string().allow(""),
2230
- success: Joi.boolean(),
2216
+ code: Joi.string().allow(""),
2217
+ symbol: Joi.string().allow(""),
2231
2218
  });
2232
2219
  }
2233
2220
 
2234
- /** @returns {UpdateCartPaymentRequest} */
2235
- static UpdateCartPaymentRequest() {
2221
+ /** @returns {LadderPriceOffers} */
2222
+ static LadderPriceOffers() {
2223
+ return Joi.object({
2224
+ available_offers: Joi.array().items(
2225
+ CartApplicationModel.LadderPriceOffer()
2226
+ ),
2227
+ currency: CartApplicationModel.CurrencyInfo(),
2228
+ });
2229
+ }
2230
+
2231
+ /** @returns {PaymentMeta} */
2232
+ static PaymentMeta() {
2236
2233
  return Joi.object({
2237
- address_id: Joi.string().allow(""),
2238
- aggregator_name: Joi.string().allow(""),
2239
- id: Joi.string().allow(""),
2240
2234
  merchant_code: Joi.string().allow(""),
2235
+ type: Joi.string().allow(""),
2236
+ payment_gateway: Joi.string().allow(""),
2241
2237
  payment_identifier: Joi.string().allow("").allow(null),
2242
- payment_mode: Joi.string().allow(""),
2243
2238
  });
2244
2239
  }
2245
2240
 
2246
- /** @returns {UpdateCartRequest} */
2247
- static UpdateCartRequest() {
2241
+ /** @returns {PaymentMethod} */
2242
+ static PaymentMethod() {
2248
2243
  return Joi.object({
2249
- items: Joi.array().items(CartApplicationModel.UpdateProductCart()),
2250
- operation: Joi.string().allow("").required(),
2244
+ payment_meta: CartApplicationModel.PaymentMeta().required(),
2245
+ mode: Joi.string().allow("").required(),
2246
+ payment: Joi.string().allow(""),
2247
+ amount: Joi.number().allow(null),
2248
+ name: Joi.string().allow(""),
2249
+ payment_extra_identifiers: Joi.any(),
2251
2250
  });
2252
2251
  }
2253
2252
 
2254
- /** @returns {UpdateProductCart} */
2255
- static UpdateProductCart() {
2253
+ /** @returns {CartCheckoutDetailV2Request} */
2254
+ static CartCheckoutDetailV2Request() {
2256
2255
  return Joi.object({
2257
- _custom_json: Joi.any(),
2258
- article_id: Joi.string().allow(""),
2256
+ custom_meta: Joi.any(),
2257
+ customer_details: Joi.any().allow(null),
2258
+ merchant_code: Joi.string().allow(""),
2259
+ cart_id: Joi.string().allow(""),
2260
+ id: Joi.string().allow("").allow(null),
2261
+ payment_auto_confirm: Joi.boolean(),
2262
+ payment_methods: Joi.array()
2263
+ .items(CartApplicationModel.PaymentMethod())
2264
+ .required(),
2265
+ payment_mode: Joi.string().allow("").required(),
2266
+ aggregator: Joi.string().allow(""),
2267
+ address_id: Joi.string().allow(""),
2268
+ callback_url: Joi.string().allow("").allow(null),
2269
+ delivery_address: Joi.any(),
2270
+ staff: CartApplicationModel.StaffCheckout(),
2271
+ order_type: Joi.string().allow(""),
2272
+ ordering_store: Joi.number().allow(null),
2259
2273
  extra_meta: Joi.any(),
2260
- identifiers: CartApplicationModel.CartProductIdentifer().required(),
2261
- item_id: Joi.number(),
2262
- item_index: Joi.number(),
2263
- item_size: Joi.string().allow(""),
2274
+ payment_identifier: Joi.string().allow("").allow(null),
2275
+ billing_address: Joi.any(),
2276
+ payment_params: Joi.any().allow(null),
2277
+ billing_address_id: Joi.string().allow(""),
2264
2278
  meta: Joi.any(),
2265
- parent_item_identifiers: Joi.any(),
2266
- quantity: Joi.number(),
2279
+ iin: Joi.string().allow(""),
2280
+ network: Joi.string().allow(""),
2281
+ type: Joi.string().allow(""),
2282
+ card_id: Joi.string().allow(""),
2267
2283
  });
2268
2284
  }
2269
2285
  }