@gofynd/fdk-client-javascript 1.1.6 → 1.2.0

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