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