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

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