@gofynd/fdk-client-javascript 1.4.2-beta.2 → 1.4.2-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/sdk/application/Cart/CartApplicationModel.d.ts +1742 -1726
  4. package/sdk/application/Cart/CartApplicationModel.js +1497 -1481
  5. package/sdk/application/Catalog/CatalogApplicationModel.d.ts +1917 -1917
  6. package/sdk/application/Catalog/CatalogApplicationModel.js +1611 -1611
  7. package/sdk/application/Common/CommonApplicationModel.d.ts +235 -235
  8. package/sdk/application/Common/CommonApplicationModel.js +172 -172
  9. package/sdk/application/Communication/CommunicationApplicationModel.d.ts +72 -72
  10. package/sdk/application/Communication/CommunicationApplicationModel.js +64 -64
  11. package/sdk/application/Configuration/ConfigurationApplicationModel.d.ts +1614 -1614
  12. package/sdk/application/Configuration/ConfigurationApplicationModel.js +1151 -1151
  13. package/sdk/application/Content/ContentApplicationModel.d.ts +797 -797
  14. package/sdk/application/Content/ContentApplicationModel.js +757 -757
  15. package/sdk/application/FileStorage/FileStorageApplicationModel.d.ts +79 -79
  16. package/sdk/application/FileStorage/FileStorageApplicationModel.js +84 -84
  17. package/sdk/application/Lead/LeadApplicationModel.d.ts +417 -417
  18. package/sdk/application/Lead/LeadApplicationModel.js +301 -301
  19. package/sdk/application/Logistic/LogisticApplicationModel.d.ts +666 -666
  20. package/sdk/application/Logistic/LogisticApplicationModel.js +601 -601
  21. package/sdk/application/Order/OrderApplicationModel.d.ts +846 -846
  22. package/sdk/application/Order/OrderApplicationModel.js +822 -822
  23. package/sdk/application/Payment/PaymentApplicationClient.d.ts +5 -5
  24. package/sdk/application/Payment/PaymentApplicationClient.js +10 -10
  25. package/sdk/application/Payment/PaymentApplicationModel.d.ts +2155 -2150
  26. package/sdk/application/Payment/PaymentApplicationModel.js +1460 -1458
  27. package/sdk/application/Payment/PaymentApplicationValidator.d.ts +5 -5
  28. package/sdk/application/Payment/PaymentApplicationValidator.js +3 -3
  29. package/sdk/application/PosCart/PosCartApplicationModel.d.ts +1462 -1462
  30. package/sdk/application/PosCart/PosCartApplicationModel.js +1260 -1260
  31. package/sdk/application/Rewards/RewardsApplicationModel.d.ts +214 -214
  32. package/sdk/application/Rewards/RewardsApplicationModel.js +211 -211
  33. package/sdk/application/Share/ShareApplicationModel.d.ts +114 -114
  34. package/sdk/application/Share/ShareApplicationModel.js +121 -121
  35. package/sdk/application/Theme/ThemeApplicationModel.d.ts +895 -895
  36. package/sdk/application/Theme/ThemeApplicationModel.js +684 -684
  37. package/sdk/application/User/UserApplicationModel.d.ts +762 -762
  38. package/sdk/application/User/UserApplicationModel.js +738 -738
  39. package/sdk/partner/FileStorage/FileStoragePartnerModel.d.ts +63 -63
  40. package/sdk/partner/FileStorage/FileStoragePartnerModel.js +65 -65
  41. package/sdk/partner/Lead/LeadPartnerModel.d.ts +661 -661
  42. package/sdk/partner/Lead/LeadPartnerModel.js +491 -491
  43. package/sdk/partner/Logistics/LogisticsPartnerModel.d.ts +223 -223
  44. package/sdk/partner/Logistics/LogisticsPartnerModel.js +235 -235
  45. package/sdk/partner/Theme/ThemePartnerModel.d.ts +1087 -1087
  46. package/sdk/partner/Theme/ThemePartnerModel.js +819 -819
  47. package/sdk/partner/Webhook/WebhookPartnerModel.d.ts +386 -386
  48. package/sdk/partner/Webhook/WebhookPartnerModel.js +342 -342
  49. package/sdk/platform/AuditTrail/AuditTrailPlatformModel.d.ts +123 -123
  50. package/sdk/platform/AuditTrail/AuditTrailPlatformModel.js +109 -109
  51. package/sdk/platform/Billing/BillingPlatformModel.d.ts +801 -801
  52. package/sdk/platform/Billing/BillingPlatformModel.js +783 -783
  53. package/sdk/platform/Cart/CartPlatformModel.d.ts +3333 -3317
  54. package/sdk/platform/Cart/CartPlatformModel.js +2936 -2920
  55. package/sdk/platform/Catalog/CatalogPlatformModel.d.ts +1013 -1013
  56. package/sdk/platform/Catalog/CatalogPlatformModel.js +923 -923
  57. package/sdk/platform/Common/CommonPlatformModel.d.ts +255 -255
  58. package/sdk/platform/Common/CommonPlatformModel.js +187 -187
  59. package/sdk/platform/Communication/CommunicationPlatformModel.d.ts +1238 -1238
  60. package/sdk/platform/Communication/CommunicationPlatformModel.js +1273 -1273
  61. package/sdk/platform/CompanyProfile/CompanyProfilePlatformModel.d.ts +661 -661
  62. package/sdk/platform/CompanyProfile/CompanyProfilePlatformModel.js +692 -692
  63. package/sdk/platform/Configuration/ConfigurationPlatformModel.d.ts +3198 -3198
  64. package/sdk/platform/Configuration/ConfigurationPlatformModel.js +2247 -2247
  65. package/sdk/platform/Content/ContentPlatformModel.d.ts +1833 -1833
  66. package/sdk/platform/Content/ContentPlatformModel.js +1837 -1837
  67. package/sdk/platform/Discount/DiscountPlatformModel.d.ts +245 -245
  68. package/sdk/platform/Discount/DiscountPlatformModel.js +248 -248
  69. package/sdk/platform/FileStorage/FileStoragePlatformModel.d.ts +865 -865
  70. package/sdk/platform/FileStorage/FileStoragePlatformModel.js +877 -877
  71. package/sdk/platform/Finance/FinancePlatformModel.d.ts +1044 -1044
  72. package/sdk/platform/Finance/FinancePlatformModel.js +974 -974
  73. package/sdk/platform/Inventory/InventoryPlatformModel.d.ts +942 -942
  74. package/sdk/platform/Inventory/InventoryPlatformModel.js +1003 -1003
  75. package/sdk/platform/Lead/LeadPlatformModel.d.ts +608 -608
  76. package/sdk/platform/Lead/LeadPlatformModel.js +465 -465
  77. package/sdk/platform/Order/OrderPlatformModel.d.ts +5180 -5176
  78. package/sdk/platform/Order/OrderPlatformModel.js +4740 -4736
  79. package/sdk/platform/Partner/PartnerPlatformModel.d.ts +22 -22
  80. package/sdk/platform/Partner/PartnerPlatformModel.js +22 -22
  81. package/sdk/platform/Payment/PaymentPlatformModel.d.ts +2670 -2660
  82. package/sdk/platform/Payment/PaymentPlatformModel.js +1831 -1827
  83. package/sdk/platform/Rewards/RewardsPlatformModel.d.ts +204 -204
  84. package/sdk/platform/Rewards/RewardsPlatformModel.js +199 -199
  85. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.d.ts +1505 -1507
  86. package/sdk/platform/Serviceability/ServiceabilityPlatformModel.js +1532 -1536
  87. package/sdk/platform/Share/SharePlatformModel.d.ts +147 -147
  88. package/sdk/platform/Share/SharePlatformModel.js +139 -139
  89. package/sdk/platform/Theme/ThemePlatformModel.d.ts +1046 -1046
  90. package/sdk/platform/Theme/ThemePlatformModel.js +789 -789
  91. package/sdk/platform/User/UserPlatformModel.d.ts +758 -758
  92. package/sdk/platform/User/UserPlatformModel.js +643 -643
  93. package/sdk/platform/Webhook/WebhookPlatformModel.d.ts +439 -439
  94. package/sdk/platform/Webhook/WebhookPlatformModel.js +364 -364
  95. package/sdk/public/Billing/BillingPublicModel.d.ts +55 -55
  96. package/sdk/public/Billing/BillingPublicModel.js +51 -51
  97. package/sdk/public/Configuration/ConfigurationPublicModel.d.ts +237 -237
  98. package/sdk/public/Configuration/ConfigurationPublicModel.js +174 -174
  99. package/sdk/public/Content/ContentPublicModel.d.ts +26 -26
  100. package/sdk/public/Content/ContentPublicModel.js +28 -28
  101. package/sdk/public/Inventory/InventoryPublicModel.d.ts +237 -237
  102. package/sdk/public/Inventory/InventoryPublicModel.js +257 -257
  103. package/sdk/public/Partner/PartnerPublicModel.d.ts +104 -104
  104. package/sdk/public/Partner/PartnerPublicModel.js +113 -113
  105. package/sdk/public/Webhook/WebhookPublicModel.d.ts +87 -87
  106. package/sdk/public/Webhook/WebhookPublicModel.js +93 -93
@@ -1,425 +1,212 @@
1
1
  const Joi = require("joi");
2
2
 
3
3
  /**
4
- * @typedef Android
5
- * @property {string} [api_key] - Firebase secret credential API key for Android
6
- * @property {string} [application_id] - Alphanumeric ID allotted to a sales
7
- * channel application created within a business account
8
- */
9
-
10
- /**
11
- * @typedef AppCurrencyResponse
12
- * @property {string} [_id]
13
- * @property {string} [application] - Alphanumeric ID allotted to an application
14
- * (sales channel website) created within a business account
15
- * @property {string} [created_at]
16
- * @property {DefaultCurrency} [default_currency]
17
- * @property {string} [modified_at]
18
- * @property {Currency[]} [supported_currency]
19
- */
20
-
21
- /**
22
- * @typedef AppFeature
23
- * @property {number} [__v] - Version key for tracking revisions. Default value is zero
24
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
25
- * for the sales channel features
26
- * @property {string} [app] - Application ID of the sales channel
27
- * @property {CartFeature} [cart]
28
- * @property {CommonFeature} [common]
29
- * @property {string} [created_at] - ISO 8601 timestamp showing the date when
30
- * the features were configured
31
- * @property {HomePageFeature} [home_page]
32
- * @property {LandingPageFeature} [landing_page]
33
- * @property {string} [modified_at] - ISO 8601 timestamp of last known
34
- * modifications to the sales channel feature configuration
35
- * @property {OrderFeature} [order]
36
- * @property {PcrFeature} [pcr]
37
- * @property {ProductDetailFeature} [product_detail]
38
- * @property {QrFeature} [qr]
39
- * @property {RegistrationPageFeature} [registration_page]
40
- */
41
-
42
- /**
43
- * @typedef AppFeatureResponse
44
- * @property {AppFeature} [feature]
4
+ * @typedef ApplicationAboutResponse
5
+ * @property {ApplicationInfo} [application_info]
45
6
  */
46
7
 
47
8
  /**
48
- * @typedef Application
49
- * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
9
+ * @typedef ApplicationInfo
10
+ * @property {CompanyInfo} [company_info]
11
+ * @property {OwnerInfo} [owner_info]
50
12
  * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
51
- * of the sales channel
52
- * @property {string} [app_type] - It shows application is live or in development mode.
53
- * @property {ApplicationAuth} [auth]
54
- * @property {SecureUrl} [banner]
55
- * @property {number} [cache_ttl] - An integer value that specifies the number
56
- * of seconds until the key expires
57
- * @property {string} [channel_type] - It indicates different channel types like
58
- * store, website-and-mobile-apps. Default value is store
59
- * @property {number} [company_id] - Numeric ID allotted to a business account
60
- * where the sales channel exists
61
- * @property {ApplicationCors} [cors]
62
- * @property {string} [created_at] - ISO 8601 timestamp of sales channel creation
63
- * @property {string} [description] - It contains detailed information about the
64
- * sales channel.
13
+ * of application information
65
14
  * @property {Domain} [domain]
66
- * @property {Domain[]} [domains]
67
- * @property {SecureUrl} [favicon]
68
- * @property {boolean} [is_active] - Indicates sales channel is active or not active
69
- * @property {boolean} [is_internal] - Indicates whether a sales channel is
70
- * internal or not
71
- * @property {SecureUrl} [logo]
72
- * @property {ApplicationMeta[]} [meta]
73
- * @property {SecureUrl} [mobile_logo]
74
- * @property {string} [mode]
75
- * @property {string} [modified_at] - ISO 8601 timestamp of sales channel updation
15
+ * @property {ApplicationWebsite} [website]
16
+ * @property {ApplicationCors} [cors]
17
+ * @property {string} [description] - It contains details information about the
18
+ * sales channel
76
19
  * @property {string} [name] - Name of the sales channel, e.g. Zenz Fashion
77
- * @property {string} [owner] - The unique identifier (24-digit Mongo Object ID)
78
- * of owner who owns the application
79
- * @property {ApplicationRedirections[]} [redirections]
80
- * @property {string} [slug]
81
- * @property {string} [status]
20
+ * @property {ApplicationMeta[]} [meta]
82
21
  * @property {string} [token] - Random generated fix length string for sales
83
22
  * channel. It is required and auto-generated.
23
+ * @property {string} [secret] - Random generated fix length string for sales
24
+ * channel. It is required and auto-generated.
25
+ * @property {string} [created_at] - ISO 8601 timestamp of sales channel
26
+ * information creation
27
+ * @property {SecureUrl} [banner]
28
+ * @property {SecureUrl} [logo]
29
+ * @property {boolean} [is_active] - Indicates whether sales channel is active
30
+ * or not active
31
+ * @property {string} [mode]
84
32
  * @property {TokenSchema[]} [tokens]
85
- * @property {ApplicationWebsite} [website]
86
- */
87
-
88
- /**
89
- * @typedef ApplicationAboutResponse
90
- * @property {ApplicationInfo} [application_info]
33
+ * @property {Domain[]} [domains]
34
+ * @property {SecureUrl} [favicon]
35
+ * @property {SecureUrl} [mobile_logo]
36
+ * @property {string} [slug]
91
37
  */
92
38
 
93
39
  /**
94
- * @typedef ApplicationAuth
95
- * @property {boolean} [enabled] - Shows sales channel auth is enabled or not enabled.
40
+ * @typedef CompanyInfo
41
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
42
+ * of company information
43
+ * @property {number} [uid] - Company UID
44
+ * @property {string} [created_on] - ISO 8601 timestamp of company information creation
45
+ * @property {boolean} [is_active] - Indicates company is active or not active
46
+ * @property {string} [name] - Name of the company, Reliance Retail Limited
47
+ * @property {CompanyAboutAddress[]} [addresses]
48
+ * @property {string[]} [notification_emails]
96
49
  */
97
50
 
98
51
  /**
99
- * @typedef ApplicationCors
100
- * @property {string[]} [domains]
52
+ * @typedef OwnerInfo
53
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
54
+ * of owner info
55
+ * @property {UserEmail[]} [emails]
56
+ * @property {UserPhoneNumber[]} [phone_numbers]
57
+ * @property {string} [first_name] - First name of the owner
58
+ * @property {string} [last_name] - Last name of the owner
59
+ * @property {string} [profile_pic] - Hosted URL of profile pic
101
60
  */
102
61
 
103
62
  /**
104
- * @typedef ApplicationDetail
105
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
106
- * for the sales channel details
107
- * @property {SecureUrl} [banner]
108
- * @property {number} [company_id]
109
- * @property {string} [description] - It gives a detailed information about the
110
- * sales channel. It is required.
111
- * @property {Domain} [domain]
112
- * @property {Domain[]} [domains]
113
- * @property {SecureUrl} [favicon]
114
- * @property {SecureUrl} [logo]
115
- * @property {SecureUrl} [mobile_logo]
116
- * @property {string} name - Name of the sales channel. It is required.
117
- * @property {string} [slug]
63
+ * @typedef SupportedLanguage
64
+ * @property {string} [name] - Name of the supported language, e.g. हिन्दी
65
+ * @property {string} [code] - Unique code of supported language, e.g. hi-IN
118
66
  */
119
67
 
120
68
  /**
121
- * @typedef ApplicationInfo
122
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
123
- * of application information
124
- * @property {SecureUrl} [banner]
125
- * @property {CompanyInfo} [company_info]
126
- * @property {ApplicationCors} [cors]
127
- * @property {string} [created_at] - ISO 8601 timestamp of sales channel
128
- * information creation
129
- * @property {string} [description] - It contains details information about the
130
- * sales channel
131
- * @property {Domain} [domain]
132
- * @property {Domain[]} [domains]
133
- * @property {SecureUrl} [favicon]
134
- * @property {boolean} [is_active] - Indicates whether sales channel is active
135
- * or not active
136
- * @property {SecureUrl} [logo]
137
- * @property {ApplicationMeta[]} [meta]
138
- * @property {SecureUrl} [mobile_logo]
139
- * @property {string} [mode]
140
- * @property {string} [name] - Name of the sales channel, e.g. Zenz Fashion
141
- * @property {OwnerInfo} [owner_info]
142
- * @property {string} [secret] - Random generated fix length string for sales
143
- * channel. It is required and auto-generated.
144
- * @property {string} [slug]
145
- * @property {string} [token] - Random generated fix length string for sales
146
- * channel. It is required and auto-generated.
147
- * @property {TokenSchema[]} [tokens]
148
- * @property {ApplicationWebsite} [website]
69
+ * @typedef LanguageResponse
70
+ * @property {SupportedLanguage[]} [items]
149
71
  */
150
72
 
151
73
  /**
152
- * @typedef ApplicationInformation
153
- * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
154
- * @property {string} [_id] - Unique identifier (24-digit Mongo Object ID) of
155
- * the application information
156
- * @property {InformationAddress} [address]
157
- * @property {string} [application] - Alphanumeric ID allotted to a sales
158
- * channel application created within a business account
159
- * @property {BusinessHighlights[]} [business_highlights]
160
- * @property {string} [copyright_text] - Copyright statement usually seen at the
161
- * site's footer
162
- * @property {string} [created_at] - ISO 8601 timestamp of creation of the
163
- * application information
164
- * @property {Links[]} [links]
165
- * @property {string} [modified_at] - ISO 8601 timestamp of updation of the
166
- * application information
167
- * @property {SocialLinks} [social_links]
168
- * @property {InformationSupport} [support]
74
+ * @typedef AppStaffResponse
75
+ * @property {AppStaff[]} [staff_users]
169
76
  */
170
77
 
171
78
  /**
172
- * @typedef ApplicationMeta
173
- * @property {string} [name] - Indicates to name of application meta
174
- * @property {string} [value] - Value related to application meta name
79
+ * @typedef AppStaffListResponse
80
+ * @property {Page} [page]
81
+ * @property {AppStaff[]} [items]
175
82
  */
176
83
 
177
84
  /**
178
- * @typedef ApplicationRedirections
179
- * @property {string} [redirect_from] - Old domain url of the sales channel
180
- * @property {string} [redirect_to] - New domain URL of the sales channel. Users
181
- * will be automatically redirected from old domain to new domain.
182
- * @property {string} [type] - It shows domain redirection type. Permanent
183
- * redirection is for long time period redirection, and temporary redirection
184
- * for a short time period.
85
+ * @typedef OrderingStoreSelectRequest
86
+ * @property {OrderingStoreSelect} ordering_store
185
87
  */
186
88
 
187
89
  /**
188
- * @typedef ApplicationWebsite
189
- * @property {string} [basepath] - Base path for the current sales channel website
190
- * @property {boolean} [enabled] - Shows whether sales channel website URL is
191
- * enabled or not
90
+ * @typedef OrderingStoreSelect
91
+ * @property {number} uid - Ordering store unique uid. It is required.
192
92
  */
193
93
 
194
94
  /**
195
95
  * @typedef AppStaff
196
96
  * @property {string} [_id] - The unique identifier for the sales channel staff member
97
+ * @property {boolean} [order_incent] - This is a boolean value. `true` to
98
+ * retrieve the staff members eligible for getting incentives on orders.
99
+ * @property {number[]} [stores]
197
100
  * @property {string} [application] - The unique identifier (24-digit Mongo
198
101
  * Object ID) of the current sales channel
102
+ * @property {string} [title] - Tittle for the staff member like owner, staff.
103
+ * @property {string} [user] - Mongo ID of the staff. Helps in retrieving the
104
+ * details of a particular staff member.
199
105
  * @property {string} [employee_code] - Employee code of sales channel staff
200
106
  * member. It has unique value.
201
107
  * @property {string} [first_name] - First name the staff member
202
108
  * @property {string} [last_name] - Last name the staff member
203
- * @property {boolean} [order_incent] - This is a boolean value. `true` to
204
- * retrieve the staff members eligible for getting incentives on orders.
205
109
  * @property {string} [profile_pic_url] - Profile image hosted url of the staff member
206
- * @property {number[]} [stores]
207
- * @property {string} [title] - Tittle for the staff member like owner, staff.
208
- * @property {string} [user] - Mongo ID of the staff. Helps in retrieving the
209
- * details of a particular staff member.
210
- */
211
-
212
- /**
213
- * @typedef AppStaffListResponse
214
- * @property {AppStaff[]} [items]
215
- * @property {Page} [page]
216
- */
217
-
218
- /**
219
- * @typedef AppStaffResponse
220
- * @property {AppStaff[]} [staff_users]
221
110
  */
222
111
 
223
112
  /**
224
113
  * @typedef AppTokenResponse
225
- * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
114
+ * @property {Tokens} [tokens]
226
115
  * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
227
116
  * of the token
228
117
  * @property {string} [application] - Alphanumeric ID allotted to the current
229
118
  * application created within the current business account
230
119
  * @property {string} [created_at] - ISO 8601 timestamp of token creation
231
120
  * @property {string} [modified_at] - ISO 8601 timestamp of token updation
232
- * @property {Tokens} [tokens]
121
+ * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
233
122
  */
234
123
 
235
124
  /**
236
- * @typedef BlogLink
237
- * @property {string} [icon] - Hosted URL of icon image shown on the website
238
- * @property {string} [link] - Web URL of brand's blog page
239
- * @property {string} [title] - Name of the brand's blog page
125
+ * @typedef Tokens
126
+ * @property {Firebase} [firebase]
127
+ * @property {Moengage} [moengage]
128
+ * @property {Segment} [segment]
129
+ * @property {Gtm} [gtm]
130
+ * @property {Freshchat} [freshchat]
131
+ * @property {Safetynet} [safetynet]
132
+ * @property {FyndRewards} [fynd_rewards]
133
+ * @property {GoogleMap} [google_map]
240
134
  */
241
135
 
242
136
  /**
243
- * @typedef BusinessHighlights
244
- * @property {string} [_id] - Unique identifier (24-digit Mongo Object ID) of
245
- * the related business
246
- * @property {string} [icon] - Hosted URL of icon image representing the
247
- * business highlight
248
- * @property {string} [sub_title] - Detailed information about the highlight
249
- * @property {string} [title] - Title of the business highlight, e.g. Superfast Delivery
250
- */
251
-
252
- /**
253
- * @typedef CartFeature
254
- * @property {boolean} [google_map] - Allow adding of Google Maps. Default value is true.
255
- * @property {boolean} [gst_input] - Shows whether customer is allowed to enter
256
- * GST on the cart page for claiming input credits
257
- * @property {boolean} [placing_for_customer] - Shows whether the staff is
258
- * placing order on behalf of customer. Default value is true.
259
- * @property {boolean} [revenue_engine_coupon] - Allow coupon apply and credits,
260
- * together. Default value is false.
261
- * @property {boolean} [staff_selection] - Shows whether staff selection is
262
- * enabled on cart page
263
- */
264
-
265
- /**
266
- * @typedef CommonFeature
267
- * @property {CommunicationOptinDialogFeature} [communication_optin_dialog]
268
- * @property {CompareProductsFeature} [compare_products]
269
- * @property {CurrencyFeature} [currency]
270
- * @property {DeploymentStoreSelectionFeature} [deployment_store_selection]
271
- * @property {FeedbackFeature} [feedback]
272
- * @property {InternationalShipping} [international_shipping]
273
- * @property {ListingPageFeature} [listing_page]
274
- * @property {ListingPriceFeature} [listing_price]
275
- * @property {RevenueEngineFeature} [revenue_engine]
276
- * @property {RewardPointsConfig} [reward_points]
277
- */
278
-
279
- /**
280
- * @typedef CommunicationOptinDialogFeature
281
- * @property {boolean} [visibility] - Shows whether WhatsApp communication is enabled
282
- */
283
-
284
- /**
285
- * @typedef CompanyAboutAddress
286
- * @property {string} [address_type] - Indicates different office types like
287
- * office, registered, and home.
288
- * @property {string} [address1] - Primary address line of the company
289
- * @property {string} [address2] - Secondary address line of the company
290
- * @property {string} [city] - City name, e.g. Mumbai
291
- * @property {string} [country] - Country name, e.g. India
292
- * @property {number} [pincode] - 6-digit PIN code of the city, e.g. 400001
293
- * @property {string} [state] - State name, e.g. Maharashtra
294
- */
295
-
296
- /**
297
- * @typedef CompanyInfo
298
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
299
- * of company information
300
- * @property {CompanyAboutAddress[]} [addresses]
301
- * @property {string} [created_on] - ISO 8601 timestamp of company information creation
302
- * @property {boolean} [is_active] - Indicates company is active or not active
303
- * @property {string} [name] - Name of the company, Reliance Retail Limited
304
- * @property {string[]} [notification_emails]
305
- * @property {number} [uid] - Company UID
306
- */
307
-
308
- /**
309
- * @typedef CompareProductsFeature
310
- * @property {boolean} [enabled] - Shows whether product comparison feature is
311
- * enabled on PDP
137
+ * @typedef Firebase
138
+ * @property {Credentials} [credentials]
139
+ * @property {boolean} [enabled] - Shows whether Firebase integration is enabled
140
+ * or disabled for the sales channel
312
141
  */
313
142
 
314
143
  /**
315
144
  * @typedef Credentials
145
+ * @property {Ios} [ios]
316
146
  * @property {Android} [android]
317
- * @property {string} [api_key] - An API key is a unique string that's used to
318
- * route requests to your Firebase project when interacting with Firebase.
319
- * @property {string} [application_id] - Alphanumeric ID allotted to the current
320
- * application created within the current business account
147
+ * @property {string} [project_id] - Project ID for Firebase integration.
148
+ * Project ID is a unique identifier for a project and is used only within the console.
321
149
  * @property {string} [gcm_sender_id] - Google Cloud Manager's Sender ID for
322
150
  * Firebase. It is a unique numerical value which is created when you
323
151
  * configure your project in the Google Developers Console/Google Cloud Console.
324
- * @property {Ios} [ios]
325
- * @property {string} [project_id] - Project ID for Firebase integration.
326
- * Project ID is a unique identifier for a project and is used only within the console.
327
- */
328
-
329
- /**
330
- * @typedef Credit
331
- * @property {boolean} [enabled] - Shows whether reward points should be credited
332
- */
333
-
334
- /**
335
- * @typedef CurrenciesResponse
336
- * @property {Currency[]} [items]
337
- */
338
-
339
- /**
340
- * @typedef Currency
341
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
342
- * of the current sales channel supported currency
343
- * @property {string} [code] - 3-character currency code, e.g. INR, USD, EUR.
344
- * @property {string} [country_code]
345
- * @property {string} [country_name]
346
- * @property {string} [created_at] - ISO 8601 timestamp of sales channel support
347
- * currency creation
348
- * @property {number} [decimal_digits] - Acceptable decimal limits for a given
349
- * currency, e.g. 1.05$ means upto 2 decimal digits can be accepted as a valid
350
- * value of a currency.
351
- * @property {boolean} [is_active] - Shows currency is enabled or not in current
352
- * sales channel
353
- * @property {string} [modified_at] - ISO 8601 timestamp of sales channel
354
- * support currency updation
355
- * @property {string} [name] - Name of the currency, e.g Indian Rupee
356
- * @property {string} [symbol] - Unique symbol for identifying the currency, e.g. ₹
152
+ * @property {string} [application_id] - Alphanumeric ID allotted to the current
153
+ * application created within the current business account
154
+ * @property {string} [api_key] - An API key is a unique string that's used to
155
+ * route requests to your Firebase project when interacting with Firebase.
357
156
  */
358
157
 
359
158
  /**
360
- * @typedef CurrencyFeature
361
- * @property {string} [default_currency] - 3-letter code of the default currency
362
- * used in the application. Default vaule is 'INR'.
363
- * @property {string} [type] - If 'explicit', currency formatting shows currency
364
- * code with price. For explicit or all currency selection.
365
- * @property {string[]} [value] - 3-letter currency code
159
+ * @typedef Ios
160
+ * @property {string} [application_id] - Alphanumeric ID allotted to a sales
161
+ * channel application created within a business account
162
+ * @property {string} [api_key] - Firebase secret credential API key for IOS
366
163
  */
367
164
 
368
165
  /**
369
- * @typedef Debit
370
- * @property {boolean} [auto_apply] - Allow automatic debit of reward points
371
- * @property {boolean} [enabled] - Shows whether reward points are available for debit
372
- * @property {string} [strategy_channel] - Strategy channel for debiting reward points
166
+ * @typedef Android
167
+ * @property {string} [application_id] - Alphanumeric ID allotted to a sales
168
+ * channel application created within a business account
169
+ * @property {string} [api_key] - Firebase secret credential API key for Android
373
170
  */
374
171
 
375
172
  /**
376
- * @typedef DefaultCurrency
377
- * @property {string} [code] - 3-character code of the default currency, e.g.
378
- * INR, EUR, USD
379
- * @property {string} [ref] - The unique identifier (24-digit Mongo Object ID)
380
- * of the default currency
173
+ * @typedef Moengage
174
+ * @property {MoengageCredentials} [credentials]
175
+ * @property {boolean} [enabled] - Shows whether MoEngage integation is enabled
176
+ * or disabled for the sales channel
381
177
  */
382
178
 
383
179
  /**
384
- * @typedef DeploymentStoreSelectionFeature
385
- * @property {boolean} [enabled] - Shows whether selection of store (for
386
- * deploying the application) is permitted
387
- * @property {string} [type] - Permitted values are 'hard' and 'soft'. For hard
388
- * type delivery, store selection is compulsory. For soft type, delivery store
389
- * selection is optional.
180
+ * @typedef MoengageCredentials
181
+ * @property {string} [app_id] - APP ID provided by MoEngage to identify a
182
+ * specific app. The app_id for your MoEngage account is available on the
183
+ * MoEngage Dashboard.
390
184
  */
391
185
 
392
186
  /**
393
- * @typedef Domain
394
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
395
- * of the sales channel domain
396
- * @property {boolean} [is_predefined] - Domain is hosting domain or not.
397
- * @property {boolean} [is_primary] - Domain is primary or not. Primary domain
398
- * is the default/main domain.
399
- * @property {boolean} [is_shortlink] - Shortlink is present or not for the domain
400
- * @property {string} [name]
401
- * @property {boolean} [verified] - Domain is verified or not. TXT and A records
402
- * should propagate correctly.
187
+ * @typedef Segment
188
+ * @property {SegmentCredentials} [credentials]
189
+ * @property {boolean} [enabled] - Shows whether Segment integration is enabled
190
+ * or disabled for the sales channel
403
191
  */
404
192
 
405
193
  /**
406
- * @typedef FacebookLink
407
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
408
- * @property {string} [link] - Web URL of brand's Facebook page
409
- * @property {string} [title] - Name of the social media platform, e.g. Facebook
194
+ * @typedef SegmentCredentials
195
+ * @property {string} [write_key] - The unique identifier for a source that
196
+ * tells Segment from which source data is coming from, to which workspace the
197
+ * data belongs, and which destinations should receive the data.
410
198
  */
411
199
 
412
200
  /**
413
- * @typedef FeedbackFeature
414
- * @property {boolean} [enabled] - Shows whether customer feedback is enabled on
415
- * PDP. Default value is false.
201
+ * @typedef Gtm
202
+ * @property {GtmCredentials} [credentials]
203
+ * @property {boolean} [enabled] - Shows whether GTM integration is enabled or
204
+ * disabled for the sales channel
416
205
  */
417
206
 
418
207
  /**
419
- * @typedef Firebase
420
- * @property {Credentials} [credentials]
421
- * @property {boolean} [enabled] - Shows whether Firebase integration is enabled
422
- * or disabled for the sales channel
208
+ * @typedef GtmCredentials
209
+ * @property {string} [api_key] - Secret credential API key for GTM
423
210
  */
424
211
 
425
212
  /**
@@ -438,6 +225,19 @@ const Joi = require("joi");
438
225
  * @property {string} [web_token] - Web token used for accessing the Freshchat APIs
439
226
  */
440
227
 
228
+ /**
229
+ * @typedef Safetynet
230
+ * @property {SafetynetCredentials} [credentials]
231
+ * @property {boolean} [enabled] - Shows whether Safetynet integration is
232
+ * enabled or disabled for the sales channel
233
+ */
234
+
235
+ /**
236
+ * @typedef SafetynetCredentials
237
+ * @property {string} [api_key] - Secret credential API key for Safetynet. This
238
+ * API key is used for calling the methods of Safetynet APIs.
239
+ */
240
+
441
241
  /**
442
242
  * @typedef FyndRewards
443
243
  * @property {FyndRewardsCredentials} [credentials]
@@ -460,77 +260,100 @@ const Joi = require("joi");
460
260
  */
461
261
 
462
262
  /**
463
- * @typedef GooglePlusLink
464
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
465
- * @property {string} [link] - Web URL of brand's Google+ account
466
- * @property {string} [title] - Name of the social media platform, e.g. Google+
263
+ * @typedef RewardPointsConfig
264
+ * @property {Credit} [credit]
265
+ * @property {Debit} [debit]
467
266
  */
468
267
 
469
268
  /**
470
- * @typedef Gtm
471
- * @property {GtmCredentials} [credentials]
472
- * @property {boolean} [enabled] - Shows whether GTM integration is enabled or
473
- * disabled for the sales channel
269
+ * @typedef Credit
270
+ * @property {boolean} [enabled] - Shows whether reward points should be credited
474
271
  */
475
272
 
476
273
  /**
477
- * @typedef GtmCredentials
478
- * @property {string} [api_key] - Secret credential API key for GTM
274
+ * @typedef Debit
275
+ * @property {boolean} [enabled] - Shows whether reward points are available for debit
276
+ * @property {boolean} [auto_apply] - Allow automatic debit of reward points
277
+ * @property {string} [strategy_channel] - Strategy channel for debiting reward points
479
278
  */
480
279
 
481
280
  /**
482
- * @typedef HomePageFeature
483
- * @property {boolean} [order_processing] - Shows whether order processing is
484
- * enabled or not enabled
281
+ * @typedef ProductDetailFeature
282
+ * @property {string[]} [similar] - Configuration to show similar products,
283
+ * other products from same seller, other products in same category, other
284
+ * products in same price range, etc.
285
+ * @property {boolean} [seller_selection] - Shows whether the customers can
286
+ * choose the seller on PDP
287
+ * @property {boolean} [update_product_meta] - Allow user to update product
288
+ * meta. Default value is true.
289
+ * @property {boolean} [request_product] - Indicates whether customers can
290
+ * request for a product. Default value is false.
485
291
  */
486
292
 
487
293
  /**
488
- * @typedef InformationAddress
489
- * @property {string[]} [address_line] - Contact address of the sales channel
490
- * @property {string} [city] - Name of the city, e.g. Mumbai
491
- * @property {string} [country] - Name of the country, e.g. India
492
- * @property {InformationLoc} [loc]
493
- * @property {InformationPhone[]} [phone]
494
- * @property {number} [pincode] - 6-digit PIN Code of the city, e.g. 400001
294
+ * @typedef LaunchPage
295
+ * @property {string} [page_type] - Type of the launch page
296
+ * @property {Object} [params] - Launch page params. It can be nullable.
297
+ * @property {Object} [query] - Query related to launch page. It can be nullable.
495
298
  */
496
299
 
497
300
  /**
498
- * @typedef InformationLoc
499
- * @property {number[]} [coordinates] - 10-digit mobile number
500
- * @property {string} [type] - Country code for contact number, e.g. +91 (for India)
301
+ * @typedef LandingPageFeature
302
+ * @property {LaunchPage} [launch_page]
303
+ * @property {boolean} [continue_as_guest] - Shows whether a guest can checkout
304
+ * from cart without logging in
305
+ * @property {string} [login_btn_text] - Shows the text displayed over the login button
306
+ * @property {boolean} [show_domain_textbox] - Shows whether a textbox for
307
+ * entering domain is available
308
+ * @property {boolean} [show_register_btn] - Shows whether register button is
309
+ * available in the login/landing page
501
310
  */
502
311
 
503
312
  /**
504
- * @typedef InformationPhone
505
- * @property {string} [code] - Country code for contact number, e.g. +91 (for India)
506
- * @property {string} [number] - 10-digit mobile number
507
- */
508
-
509
- /**
510
- * @typedef InformationSupport
511
- * @property {InformationSupportEmail[]} [email]
512
- * @property {InformationSupportPhone[]} [phone]
513
- * @property {string} [timing] - Working hours of support team, e.g. 9 AM to 9 PM
313
+ * @typedef RegistrationPageFeature
314
+ * @property {boolean} [ask_store_address] - Shows whether a form to collect the
315
+ * address of the store, should be displayed upon visiting the website
514
316
  */
515
317
 
516
318
  /**
517
- * @typedef InformationSupportEmail
518
- * @property {string} [key]
519
- * @property {string} [value] - Value of email.
319
+ * @typedef AppFeature
320
+ * @property {ProductDetailFeature} [product_detail]
321
+ * @property {LandingPageFeature} [landing_page]
322
+ * @property {RegistrationPageFeature} [registration_page]
323
+ * @property {HomePageFeature} [home_page]
324
+ * @property {CommonFeature} [common]
325
+ * @property {CartFeature} [cart]
326
+ * @property {QrFeature} [qr]
327
+ * @property {PcrFeature} [pcr]
328
+ * @property {OrderFeature} [order]
329
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
330
+ * for the sales channel features
331
+ * @property {string} [app] - Application ID of the sales channel
332
+ * @property {string} [created_at] - ISO 8601 timestamp showing the date when
333
+ * the features were configured
334
+ * @property {string} [modified_at] - ISO 8601 timestamp of last known
335
+ * modifications to the sales channel feature configuration
336
+ * @property {number} [__v] - Version key for tracking revisions. Default value is zero
520
337
  */
521
338
 
522
339
  /**
523
- * @typedef InformationSupportPhone
524
- * @property {string} [code] - Country code for contact number, e.g. +91 (for India)
525
- * @property {string} [key]
526
- * @property {string} [number] - 10-digit mobile number
340
+ * @typedef HomePageFeature
341
+ * @property {boolean} [order_processing] - Shows whether order processing is
342
+ * enabled or not enabled
527
343
  */
528
344
 
529
345
  /**
530
- * @typedef InstagramLink
531
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
532
- * @property {string} [link] - Web URL of brand's Instagram page
533
- * @property {string} [title] - Name of the social media platform, e.g. Instagram
346
+ * @typedef CommonFeature
347
+ * @property {CommunicationOptinDialogFeature} [communication_optin_dialog]
348
+ * @property {DeploymentStoreSelectionFeature} [deployment_store_selection]
349
+ * @property {ListingPriceFeature} [listing_price]
350
+ * @property {CurrencyFeature} [currency]
351
+ * @property {RevenueEngineFeature} [revenue_engine]
352
+ * @property {FeedbackFeature} [feedback]
353
+ * @property {CompareProductsFeature} [compare_products]
354
+ * @property {RewardPointsConfig} [reward_points]
355
+ * @property {ListingPageFeature} [listing_page]
356
+ * @property {InternationalShipping} [international_shipping]
534
357
  */
535
358
 
536
359
  /**
@@ -539,1335 +362,1512 @@ const Joi = require("joi");
539
362
  */
540
363
 
541
364
  /**
542
- * @typedef InvalidPayloadRequest
543
- * @property {string} [message] - Error message when request body payload is improper
365
+ * @typedef CommunicationOptinDialogFeature
366
+ * @property {boolean} [visibility] - Shows whether WhatsApp communication is enabled
544
367
  */
545
368
 
546
369
  /**
547
- * @typedef Ios
548
- * @property {string} [api_key] - Firebase secret credential API key for IOS
549
- * @property {string} [application_id] - Alphanumeric ID allotted to a sales
550
- * channel application created within a business account
370
+ * @typedef DeploymentStoreSelectionFeature
371
+ * @property {boolean} [enabled] - Shows whether selection of store (for
372
+ * deploying the application) is permitted
373
+ * @property {string} [type] - Permitted values are 'hard' and 'soft'. For hard
374
+ * type delivery, store selection is compulsory. For soft type, delivery store
375
+ * selection is optional.
551
376
  */
552
377
 
553
378
  /**
554
- * @typedef LandingPageFeature
555
- * @property {boolean} [continue_as_guest] - Shows whether a guest can checkout
556
- * from cart without logging in
557
- * @property {LaunchPage} [launch_page]
558
- * @property {string} [login_btn_text] - Shows the text displayed over the login button
559
- * @property {boolean} [show_domain_textbox] - Shows whether a textbox for
560
- * entering domain is available
561
- * @property {boolean} [show_register_btn] - Shows whether register button is
562
- * available in the login/landing page
379
+ * @typedef ListingPriceFeature
380
+ * @property {string} [value] - Shows which price to display on PLP if one
381
+ * product has multiple prices (for each size), valid values are 'min', 'max',
382
+ * 'range'. Default value is range.
383
+ * @property {string} [sort] - Sorting of listing price with min or max value.
384
+ * Default value is min.
563
385
  */
564
386
 
565
387
  /**
566
- * @typedef LanguageResponse
567
- * @property {SupportedLanguage[]} [items]
388
+ * @typedef ListingPageFeature
389
+ * @property {string} [sort_on]
568
390
  */
569
391
 
570
392
  /**
571
- * @typedef LaunchPage
572
- * @property {string} [page_type] - Type of the launch page
573
- * @property {Object} [params] - Launch page params. It can be nullable.
574
- * @property {Object} [query] - Query related to launch page. It can be nullable.
393
+ * @typedef CurrencyFeature
394
+ * @property {string[]} [value] - 3-letter currency code
395
+ * @property {string} [type] - If 'explicit', currency formatting shows currency
396
+ * code with price. For explicit or all currency selection.
397
+ * @property {string} [default_currency] - 3-letter code of the default currency
398
+ * used in the application. Default vaule is 'INR'.
575
399
  */
576
400
 
577
401
  /**
578
- * @typedef LinkedInLink
579
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
580
- * @property {string} [link] - Web URL of brand's LinkedIn channel
581
- * @property {string} [title] - Name of the social media platform, e.g. LinkedIn
402
+ * @typedef RevenueEngineFeature
403
+ * @property {boolean} [enabled] - Enable revenue engine. Default value is false.
582
404
  */
583
405
 
584
406
  /**
585
- * @typedef Links
586
- * @property {string} [link] - Web URL for redirecting to a related page
587
- * @property {string} [title] - Name of the related page or link
407
+ * @typedef FeedbackFeature
408
+ * @property {boolean} [enabled] - Shows whether customer feedback is enabled on
409
+ * PDP. Default value is false.
588
410
  */
589
411
 
590
412
  /**
591
- * @typedef ListingPageFeature
592
- * @property {string} [sort_on]
413
+ * @typedef CompareProductsFeature
414
+ * @property {boolean} [enabled] - Shows whether product comparison feature is
415
+ * enabled on PDP
593
416
  */
594
417
 
595
418
  /**
596
- * @typedef ListingPriceFeature
597
- * @property {string} [sort] - Sorting of listing price with min or max value.
598
- * Default value is min.
599
- * @property {string} [value] - Shows which price to display on PLP if one
600
- * product has multiple prices (for each size), valid values are 'min', 'max',
601
- * 'range'. Default value is range.
419
+ * @typedef CartFeature
420
+ * @property {boolean} [gst_input] - Shows whether customer is allowed to enter
421
+ * GST on the cart page for claiming input credits
422
+ * @property {boolean} [staff_selection] - Shows whether staff selection is
423
+ * enabled on cart page
424
+ * @property {boolean} [placing_for_customer] - Shows whether the staff is
425
+ * placing order on behalf of customer. Default value is true.
426
+ * @property {boolean} [google_map] - Allow adding of Google Maps. Default value is true.
427
+ * @property {boolean} [revenue_engine_coupon] - Allow coupon apply and credits,
428
+ * together. Default value is false.
602
429
  */
603
430
 
604
431
  /**
605
- * @typedef Moengage
606
- * @property {MoengageCredentials} [credentials]
607
- * @property {boolean} [enabled] - Shows whether MoEngage integation is enabled
608
- * or disabled for the sales channel
432
+ * @typedef QrFeature
433
+ * @property {boolean} [application] - Shows whether sharing of mobile app via
434
+ * QR code is allowed. Default value is false.
435
+ * @property {boolean} [products] - Shows whether sharing product via QR code is
436
+ * allowed. Default value is false.
437
+ * @property {boolean} [collections] - Shows whether sharing collection via QR
438
+ * code is allowed. Default value is false.
609
439
  */
610
440
 
611
441
  /**
612
- * @typedef MoengageCredentials
613
- * @property {string} [app_id] - APP ID provided by MoEngage to identify a
614
- * specific app. The app_id for your MoEngage account is available on the
615
- * MoEngage Dashboard.
442
+ * @typedef PcrFeature
443
+ * @property {boolean} [staff_selection] - Allow staff selection. Default value is false.
616
444
  */
617
445
 
618
446
  /**
619
- * @typedef NotFound
620
- * @property {string} [message] - Response message for not found
447
+ * @typedef OrderFeature
448
+ * @property {boolean} [buy_again] - Allow buy again option for order. Default
449
+ * value is false.
621
450
  */
622
451
 
623
452
  /**
624
- * @typedef OptedStoreAddress
625
- * @property {string} [address1] - Address of the opted store
626
- * @property {string} [address2] - Address of the opted store
627
- * @property {string} [city] - City of the opted store, e.g. Mumbai
628
- * @property {string} [country] - Country of the opted store, e.g. India
629
- * @property {StoreLatLong} [lat_long]
630
- * @property {number} [pincode] - 6-digit PIN code of the opted store location
631
- * @property {string} [state] - State of the opted store, e.g. Maharashtra
453
+ * @typedef AppFeatureResponse
454
+ * @property {AppFeature} [feature]
632
455
  */
633
456
 
634
457
  /**
635
- * @typedef OrderFeature
636
- * @property {boolean} [buy_again] - Allow buy again option for order. Default
637
- * value is false.
458
+ * @typedef Currency
459
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
460
+ * of the current sales channel supported currency
461
+ * @property {boolean} [is_active] - Shows currency is enabled or not in current
462
+ * sales channel
463
+ * @property {string} [name] - Name of the currency, e.g Indian Rupee
464
+ * @property {string} [code] - 3-character currency code, e.g. INR, USD, EUR.
465
+ * @property {string} [created_at] - ISO 8601 timestamp of sales channel support
466
+ * currency creation
467
+ * @property {string} [modified_at] - ISO 8601 timestamp of sales channel
468
+ * support currency updation
469
+ * @property {number} [decimal_digits] - Acceptable decimal limits for a given
470
+ * currency, e.g. 1.05$ means upto 2 decimal digits can be accepted as a valid
471
+ * value of a currency.
472
+ * @property {string} [symbol] - Unique symbol for identifying the currency, e.g. ₹
473
+ * @property {string} [country_name]
474
+ * @property {string} [country_code]
638
475
  */
639
476
 
640
477
  /**
641
- * @typedef OrderingStore
478
+ * @typedef Domain
479
+ * @property {boolean} [verified] - Domain is verified or not. TXT and A records
480
+ * should propagate correctly.
481
+ * @property {boolean} [is_primary] - Domain is primary or not. Primary domain
482
+ * is the default/main domain.
483
+ * @property {boolean} [is_shortlink] - Shortlink is present or not for the domain
642
484
  * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
643
- * of the ordering store
644
- * @property {OptedStoreAddress} [address]
645
- * @property {string} [code] - Code of the ordering store (usually same as Store Code)
646
- * @property {string} [display_name] - Display name of the ordering store
647
- * @property {string} [name] - Store name of the ordering store
648
- * @property {number} [pincode] - 6-digit PIN Code of the ordering store, e.g. 400001
649
- * @property {string} [store_code] - Store code of the ordering store, e.g. MUM-102
650
- * @property {string} [store_type] - Store type of the ordering store, e.g.
651
- * high_street, mall, warehouse
652
- * @property {number} [uid] - Ordering store UID
485
+ * of the sales channel domain
486
+ * @property {string} [name]
487
+ * @property {boolean} [is_predefined] - Domain is hosting domain or not.
653
488
  */
654
489
 
655
490
  /**
656
- * @typedef OrderingStores
657
- * @property {number} [__v] - Version key for tracking ordering stores. Default
658
- * value is zero.
659
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
660
- * of the ordering store
661
- * @property {boolean} [all_stores] - Allow all stores of the ordering stores
662
- * @property {string} [app] - Alphanumeric ID allotted to an application (sales
663
- * channel website) created within a business account
664
- * @property {number[]} [deployed_stores]
665
- * @property {boolean} [enabled] - Allow ordering stores for current sales channel
666
- * @property {OrderingStore[]} [items]
667
- * @property {Page} [page]
668
- * @property {string} [type] - For hard type delivery, store selection is
669
- * compulsory. For soft type, delivery store selection is optional.
491
+ * @typedef ApplicationWebsite
492
+ * @property {boolean} [enabled] - Shows whether sales channel website URL is
493
+ * enabled or not
494
+ * @property {string} [basepath] - Base path for the current sales channel website
670
495
  */
671
496
 
672
497
  /**
673
- * @typedef OrderingStoreSelect
674
- * @property {number} uid - Ordering store unique uid. It is required.
498
+ * @typedef ApplicationCors
499
+ * @property {string[]} [domains]
675
500
  */
676
501
 
677
502
  /**
678
- * @typedef OrderingStoreSelectRequest
679
- * @property {OrderingStoreSelect} ordering_store
503
+ * @typedef ApplicationAuth
504
+ * @property {boolean} [enabled] - Shows sales channel auth is enabled or not enabled.
680
505
  */
681
506
 
682
507
  /**
683
- * @typedef OwnerInfo
684
- * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
685
- * of owner info
686
- * @property {UserEmail[]} [emails]
687
- * @property {string} [first_name] - First name of the owner
688
- * @property {string} [last_name] - Last name of the owner
689
- * @property {UserPhoneNumber[]} [phone_numbers]
690
- * @property {string} [profile_pic] - Hosted URL of profile pic
508
+ * @typedef ApplicationRedirections
509
+ * @property {string} [redirect_from] - Old domain url of the sales channel
510
+ * @property {string} [redirect_to] - New domain URL of the sales channel. Users
511
+ * will be automatically redirected from old domain to new domain.
512
+ * @property {string} [type] - It shows domain redirection type. Permanent
513
+ * redirection is for long time period redirection, and temporary redirection
514
+ * for a short time period.
691
515
  */
692
516
 
693
517
  /**
694
- * @typedef Page
695
- * @property {number} [current]
696
- * @property {boolean} [has_next]
697
- * @property {boolean} [has_previous]
698
- * @property {number} [item_total]
699
- * @property {string} [next_id]
700
- * @property {number} [size]
701
- * @property {string} type
518
+ * @typedef ApplicationMeta
519
+ * @property {string} [name] - Indicates to name of application meta
520
+ * @property {string} [value] - Value related to application meta name
702
521
  */
703
522
 
704
523
  /**
705
- * @typedef PcrFeature
706
- * @property {boolean} [staff_selection] - Allow staff selection. Default value is false.
524
+ * @typedef SecureUrl
525
+ * @property {string} [secure_url] - Hosted URL of the image
707
526
  */
708
527
 
709
528
  /**
710
- * @typedef PinterestLink
711
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
712
- * @property {string} [link] - Web URL of brand's Pinterest page
713
- * @property {string} [title] - Name of the social media platform, e.g. Pinterest
529
+ * @typedef Application
530
+ * @property {ApplicationWebsite} [website]
531
+ * @property {ApplicationCors} [cors]
532
+ * @property {ApplicationAuth} [auth]
533
+ * @property {string} [description] - It contains detailed information about the
534
+ * sales channel.
535
+ * @property {string} [channel_type] - It indicates different channel types like
536
+ * store, website-and-mobile-apps. Default value is store
537
+ * @property {number} [cache_ttl] - An integer value that specifies the number
538
+ * of seconds until the key expires
539
+ * @property {boolean} [is_internal] - Indicates whether a sales channel is
540
+ * internal or not
541
+ * @property {boolean} [is_active] - Indicates sales channel is active or not active
542
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
543
+ * of the sales channel
544
+ * @property {string} [name] - Name of the sales channel, e.g. Zenz Fashion
545
+ * @property {string} [owner] - The unique identifier (24-digit Mongo Object ID)
546
+ * of owner who owns the application
547
+ * @property {number} [company_id] - Numeric ID allotted to a business account
548
+ * where the sales channel exists
549
+ * @property {string} [token] - Random generated fix length string for sales
550
+ * channel. It is required and auto-generated.
551
+ * @property {ApplicationRedirections[]} [redirections]
552
+ * @property {ApplicationMeta[]} [meta]
553
+ * @property {string} [created_at] - ISO 8601 timestamp of sales channel creation
554
+ * @property {string} [modified_at] - ISO 8601 timestamp of sales channel updation
555
+ * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
556
+ * @property {SecureUrl} [banner]
557
+ * @property {SecureUrl} [logo]
558
+ * @property {SecureUrl} [favicon]
559
+ * @property {Domain[]} [domains]
560
+ * @property {string} [app_type] - It shows application is live or in development mode.
561
+ * @property {SecureUrl} [mobile_logo]
562
+ * @property {Domain} [domain]
563
+ * @property {string} [slug]
564
+ * @property {string} [mode]
565
+ * @property {string} [status]
566
+ * @property {TokenSchema[]} [tokens]
714
567
  */
715
568
 
716
569
  /**
717
- * @typedef ProductDetailFeature
718
- * @property {boolean} [request_product] - Indicates whether customers can
719
- * request for a product. Default value is false.
720
- * @property {boolean} [seller_selection] - Shows whether the customers can
721
- * choose the seller on PDP
722
- * @property {string[]} [similar] - Configuration to show similar products,
723
- * other products from same seller, other products in same category, other
724
- * products in same price range, etc.
725
- * @property {boolean} [update_product_meta] - Allow user to update product
726
- * meta. Default value is true.
570
+ * @typedef TokenSchema
571
+ * @property {string} [token]
572
+ * @property {Object} [created_by]
573
+ * @property {string} [created_at] - ISO 8601 timestamp of when token created
727
574
  */
728
575
 
729
576
  /**
730
- * @typedef QrFeature
731
- * @property {boolean} [application] - Shows whether sharing of mobile app via
732
- * QR code is allowed. Default value is false.
733
- * @property {boolean} [collections] - Shows whether sharing collection via QR
734
- * code is allowed. Default value is false.
735
- * @property {boolean} [products] - Shows whether sharing product via QR code is
736
- * allowed. Default value is false.
577
+ * @typedef NotFound
578
+ * @property {string} [message] - Response message for not found
737
579
  */
738
580
 
739
581
  /**
740
- * @typedef RegistrationPageFeature
741
- * @property {boolean} [ask_store_address] - Shows whether a form to collect the
742
- * address of the store, should be displayed upon visiting the website
582
+ * @typedef InvalidPayloadRequest
583
+ * @property {string} [message] - Error message when request body payload is improper
743
584
  */
744
585
 
745
586
  /**
746
- * @typedef RevenueEngineFeature
747
- * @property {boolean} [enabled] - Enable revenue engine. Default value is false.
587
+ * @typedef UnhandledError
588
+ * @property {string} [message]
748
589
  */
749
590
 
750
591
  /**
751
- * @typedef RewardPointsConfig
752
- * @property {Credit} [credit]
753
- * @property {Debit} [debit]
592
+ * @typedef SuccessMessageResponse
593
+ * @property {string} [message] - Success message shown to the user (in a string format)
754
594
  */
755
595
 
756
596
  /**
757
- * @typedef Safetynet
758
- * @property {SafetynetCredentials} [credentials]
759
- * @property {boolean} [enabled] - Shows whether Safetynet integration is
760
- * enabled or disabled for the sales channel
597
+ * @typedef CompanyAboutAddress
598
+ * @property {number} [pincode] - 6-digit PIN code of the city, e.g. 400001
599
+ * @property {string} [address1] - Primary address line of the company
600
+ * @property {string} [address2] - Secondary address line of the company
601
+ * @property {string} [city] - City name, e.g. Mumbai
602
+ * @property {string} [state] - State name, e.g. Maharashtra
603
+ * @property {string} [country] - Country name, e.g. India
604
+ * @property {string} [address_type] - Indicates different office types like
605
+ * office, registered, and home.
761
606
  */
762
607
 
763
608
  /**
764
- * @typedef SafetynetCredentials
765
- * @property {string} [api_key] - Secret credential API key for Safetynet. This
766
- * API key is used for calling the methods of Safetynet APIs.
609
+ * @typedef UserEmail
610
+ * @property {boolean} [active] - Current email is active or not active
611
+ * @property {boolean} [primary] - Indicates current email is primay email or
612
+ * not primary email of user
613
+ * @property {boolean} [verified] - Indicates current email is verified email or
614
+ * not verified email
615
+ * @property {string} [email] - Email address of the user
767
616
  */
768
617
 
769
618
  /**
770
- * @typedef SecureUrl
771
- * @property {string} [secure_url] - Hosted URL of the image
619
+ * @typedef UserPhoneNumber
620
+ * @property {boolean} [active] - Current phone number is active or not active
621
+ * @property {boolean} [primary] - Indicates current phone number is primay or
622
+ * not primary of user
623
+ * @property {boolean} [verified] - Indicates current phone number is verified
624
+ * or not verified
625
+ * @property {number} [country_code] - Country code, e.g. +91
626
+ * @property {string} [phone] - Phone number of the user
772
627
  */
773
628
 
774
629
  /**
775
- * @typedef Segment
776
- * @property {SegmentCredentials} [credentials]
777
- * @property {boolean} [enabled] - Shows whether Segment integration is enabled
778
- * or disabled for the sales channel
630
+ * @typedef Page
631
+ * @property {number} [item_total]
632
+ * @property {string} [next_id]
633
+ * @property {boolean} [has_previous]
634
+ * @property {boolean} [has_next]
635
+ * @property {number} [current]
636
+ * @property {string} type
637
+ * @property {number} [size]
779
638
  */
780
639
 
781
640
  /**
782
- * @typedef SegmentCredentials
783
- * @property {string} [write_key] - The unique identifier for a source that
784
- * tells Segment from which source data is coming from, to which workspace the
785
- * data belongs, and which destinations should receive the data.
641
+ * @typedef ApplicationInformation
642
+ * @property {InformationAddress} [address]
643
+ * @property {InformationSupport} [support]
644
+ * @property {SocialLinks} [social_links]
645
+ * @property {Links[]} [links]
646
+ * @property {string} [copyright_text] - Copyright statement usually seen at the
647
+ * site's footer
648
+ * @property {string} [_id] - Unique identifier (24-digit Mongo Object ID) of
649
+ * the application information
650
+ * @property {BusinessHighlights[]} [business_highlights]
651
+ * @property {string} [application] - Alphanumeric ID allotted to a sales
652
+ * channel application created within a business account
653
+ * @property {string} [created_at] - ISO 8601 timestamp of creation of the
654
+ * application information
655
+ * @property {string} [modified_at] - ISO 8601 timestamp of updation of the
656
+ * application information
657
+ * @property {number} [__v] - Version key for tracking revisions. Default value is zero.
786
658
  */
787
659
 
788
660
  /**
789
- * @typedef SocialLinks
790
- * @property {BlogLink} [blog_link]
791
- * @property {FacebookLink} [facebook]
792
- * @property {GooglePlusLink} [google_plus]
793
- * @property {InstagramLink} [instagram]
794
- * @property {LinkedInLink} [linked_in]
795
- * @property {PinterestLink} [pinterest]
796
- * @property {TwitterLink} [twitter]
797
- * @property {VimeoLink} [vimeo]
798
- * @property {YoutubeLink} [youtube]
661
+ * @typedef InformationAddress
662
+ * @property {InformationLoc} [loc]
663
+ * @property {string[]} [address_line] - Contact address of the sales channel
664
+ * @property {InformationPhone[]} [phone]
665
+ * @property {string} [city] - Name of the city, e.g. Mumbai
666
+ * @property {string} [country] - Name of the country, e.g. India
667
+ * @property {number} [pincode] - 6-digit PIN Code of the city, e.g. 400001
799
668
  */
800
669
 
801
670
  /**
802
- * @typedef StoreLatLong
803
- * @property {number[]} [coordinates]
804
- * @property {string} [type] - Coordinates type of the opted store
671
+ * @typedef InformationPhone
672
+ * @property {string} [code] - Country code for contact number, e.g. +91 (for India)
673
+ * @property {string} [number] - 10-digit mobile number
805
674
  */
806
675
 
807
676
  /**
808
- * @typedef SuccessMessageResponse
809
- * @property {string} [message] - Success message shown to the user (in a string format)
677
+ * @typedef InformationSupportPhone
678
+ * @property {string} [code] - Country code for contact number, e.g. +91 (for India)
679
+ * @property {string} [number] - 10-digit mobile number
680
+ * @property {string} [key]
810
681
  */
811
682
 
812
683
  /**
813
- * @typedef SupportedLanguage
814
- * @property {string} [code] - Unique code of supported language, e.g. hi-IN
815
- * @property {string} [name] - Name of the supported language, e.g. हिन्दी
684
+ * @typedef InformationSupportEmail
685
+ * @property {string} [value] - Value of email.
686
+ * @property {string} [key]
816
687
  */
817
688
 
818
689
  /**
819
- * @typedef Tokens
820
- * @property {Firebase} [firebase]
821
- * @property {Freshchat} [freshchat]
822
- * @property {FyndRewards} [fynd_rewards]
823
- * @property {GoogleMap} [google_map]
824
- * @property {Gtm} [gtm]
825
- * @property {Moengage} [moengage]
826
- * @property {Safetynet} [safetynet]
827
- * @property {Segment} [segment]
690
+ * @typedef InformationLoc
691
+ * @property {string} [type] - Country code for contact number, e.g. +91 (for India)
692
+ * @property {number[]} [coordinates] - 10-digit mobile number
828
693
  */
829
694
 
830
695
  /**
831
- * @typedef TokenSchema
832
- * @property {string} [created_at] - ISO 8601 timestamp of when token created
833
- * @property {Object} [created_by]
834
- * @property {string} [token]
696
+ * @typedef InformationSupport
697
+ * @property {InformationSupportPhone[]} [phone]
698
+ * @property {InformationSupportEmail[]} [email]
699
+ * @property {string} [timing] - Working hours of support team, e.g. 9 AM to 9 PM
700
+ */
701
+
702
+ /**
703
+ * @typedef SocialLinks
704
+ * @property {FacebookLink} [facebook]
705
+ * @property {InstagramLink} [instagram]
706
+ * @property {TwitterLink} [twitter]
707
+ * @property {PinterestLink} [pinterest]
708
+ * @property {GooglePlusLink} [google_plus]
709
+ * @property {YoutubeLink} [youtube]
710
+ * @property {LinkedInLink} [linked_in]
711
+ * @property {VimeoLink} [vimeo]
712
+ * @property {BlogLink} [blog_link]
713
+ */
714
+
715
+ /**
716
+ * @typedef FacebookLink
717
+ * @property {string} [title] - Name of the social media platform, e.g. Facebook
718
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
719
+ * @property {string} [link] - Web URL of brand's Facebook page
720
+ */
721
+
722
+ /**
723
+ * @typedef InstagramLink
724
+ * @property {string} [title] - Name of the social media platform, e.g. Instagram
725
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
726
+ * @property {string} [link] - Web URL of brand's Instagram page
835
727
  */
836
728
 
837
729
  /**
838
730
  * @typedef TwitterLink
731
+ * @property {string} [title] - Name of the social media platform, e.g. Twitter
839
732
  * @property {string} [icon] - Hosted URL of social icon image shown on the website
840
733
  * @property {string} [link] - Web URL of brand's Twitter account
841
- * @property {string} [title] - Name of the social media platform, e.g. Twitter
842
734
  */
843
735
 
844
736
  /**
845
- * @typedef UnhandledError
846
- * @property {string} [message]
737
+ * @typedef PinterestLink
738
+ * @property {string} [title] - Name of the social media platform, e.g. Pinterest
739
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
740
+ * @property {string} [link] - Web URL of brand's Pinterest page
847
741
  */
848
742
 
849
743
  /**
850
- * @typedef UserEmail
851
- * @property {boolean} [active] - Current email is active or not active
852
- * @property {string} [email] - Email address of the user
853
- * @property {boolean} [primary] - Indicates current email is primay email or
854
- * not primary email of user
855
- * @property {boolean} [verified] - Indicates current email is verified email or
856
- * not verified email
744
+ * @typedef GooglePlusLink
745
+ * @property {string} [title] - Name of the social media platform, e.g. Google+
746
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
747
+ * @property {string} [link] - Web URL of brand's Google+ account
857
748
  */
858
749
 
859
750
  /**
860
- * @typedef UserPhoneNumber
861
- * @property {boolean} [active] - Current phone number is active or not active
862
- * @property {number} [country_code] - Country code, e.g. +91
863
- * @property {string} [phone] - Phone number of the user
864
- * @property {boolean} [primary] - Indicates current phone number is primay or
865
- * not primary of user
866
- * @property {boolean} [verified] - Indicates current phone number is verified
867
- * or not verified
751
+ * @typedef YoutubeLink
752
+ * @property {string} [title] - Name of the social media platform, e.g. YouTube
753
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
754
+ * @property {string} [link] - Web URL of brand's YouTube channel
755
+ */
756
+
757
+ /**
758
+ * @typedef LinkedInLink
759
+ * @property {string} [title] - Name of the social media platform, e.g. LinkedIn
760
+ * @property {string} [icon] - Hosted URL of social icon image shown on the website
761
+ * @property {string} [link] - Web URL of brand's LinkedIn channel
868
762
  */
869
763
 
870
764
  /**
871
765
  * @typedef VimeoLink
766
+ * @property {string} [title] - Name of the video hosting platform, e.g. Vimeo
872
767
  * @property {string} [icon] - Hosted URL of social icon image shown on the website
873
768
  * @property {string} [link] - Web URL of brand's Vimeo channel
874
- * @property {string} [title] - Name of the video hosting platform, e.g. Vimeo
875
769
  */
876
770
 
877
771
  /**
878
- * @typedef YoutubeLink
879
- * @property {string} [icon] - Hosted URL of social icon image shown on the website
880
- * @property {string} [link] - Web URL of brand's YouTube channel
881
- * @property {string} [title] - Name of the social media platform, e.g. YouTube
772
+ * @typedef BlogLink
773
+ * @property {string} [title] - Name of the brand's blog page
774
+ * @property {string} [icon] - Hosted URL of icon image shown on the website
775
+ * @property {string} [link] - Web URL of brand's blog page
776
+ */
777
+
778
+ /**
779
+ * @typedef Links
780
+ * @property {string} [title] - Name of the related page or link
781
+ * @property {string} [link] - Web URL for redirecting to a related page
782
+ */
783
+
784
+ /**
785
+ * @typedef BusinessHighlights
786
+ * @property {string} [_id] - Unique identifier (24-digit Mongo Object ID) of
787
+ * the related business
788
+ * @property {string} [title] - Title of the business highlight, e.g. Superfast Delivery
789
+ * @property {string} [icon] - Hosted URL of icon image representing the
790
+ * business highlight
791
+ * @property {string} [sub_title] - Detailed information about the highlight
792
+ */
793
+
794
+ /**
795
+ * @typedef ApplicationDetail
796
+ * @property {string} name - Name of the sales channel. It is required.
797
+ * @property {string} [description] - It gives a detailed information about the
798
+ * sales channel. It is required.
799
+ * @property {SecureUrl} [logo]
800
+ * @property {SecureUrl} [mobile_logo]
801
+ * @property {SecureUrl} [favicon]
802
+ * @property {SecureUrl} [banner]
803
+ * @property {Domain} [domain]
804
+ * @property {Domain[]} [domains]
805
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
806
+ * for the sales channel details
807
+ * @property {string} [slug]
808
+ * @property {number} [company_id]
809
+ */
810
+
811
+ /**
812
+ * @typedef CurrenciesResponse
813
+ * @property {Currency[]} [items]
814
+ */
815
+
816
+ /**
817
+ * @typedef DefaultCurrency
818
+ * @property {string} [ref] - The unique identifier (24-digit Mongo Object ID)
819
+ * of the default currency
820
+ * @property {string} [code] - 3-character code of the default currency, e.g.
821
+ * INR, EUR, USD
822
+ */
823
+
824
+ /**
825
+ * @typedef AppCurrencyResponse
826
+ * @property {string} [application] - Alphanumeric ID allotted to an application
827
+ * (sales channel website) created within a business account
828
+ * @property {DefaultCurrency} [default_currency]
829
+ * @property {Currency[]} [supported_currency]
830
+ * @property {string} [_id]
831
+ * @property {string} [created_at]
832
+ * @property {string} [modified_at]
833
+ */
834
+
835
+ /**
836
+ * @typedef StoreLatLong
837
+ * @property {string} [type] - Coordinates type of the opted store
838
+ * @property {number[]} [coordinates]
839
+ */
840
+
841
+ /**
842
+ * @typedef OptedStoreAddress
843
+ * @property {string} [state] - State of the opted store, e.g. Maharashtra
844
+ * @property {string} [address1] - Address of the opted store
845
+ * @property {StoreLatLong} [lat_long]
846
+ * @property {string} [address2] - Address of the opted store
847
+ * @property {number} [pincode] - 6-digit PIN code of the opted store location
848
+ * @property {string} [country] - Country of the opted store, e.g. India
849
+ * @property {string} [city] - City of the opted store, e.g. Mumbai
850
+ */
851
+
852
+ /**
853
+ * @typedef OrderingStore
854
+ * @property {OptedStoreAddress} [address]
855
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
856
+ * of the ordering store
857
+ * @property {number} [uid] - Ordering store UID
858
+ * @property {string} [name] - Store name of the ordering store
859
+ * @property {string} [display_name] - Display name of the ordering store
860
+ * @property {string} [store_type] - Store type of the ordering store, e.g.
861
+ * high_street, mall, warehouse
862
+ * @property {string} [store_code] - Store code of the ordering store, e.g. MUM-102
863
+ * @property {number} [pincode] - 6-digit PIN Code of the ordering store, e.g. 400001
864
+ * @property {string} [code] - Code of the ordering store (usually same as Store Code)
865
+ */
866
+
867
+ /**
868
+ * @typedef OrderingStores
869
+ * @property {Page} [page]
870
+ * @property {OrderingStore[]} [items]
871
+ * @property {number[]} [deployed_stores]
872
+ * @property {boolean} [all_stores] - Allow all stores of the ordering stores
873
+ * @property {boolean} [enabled] - Allow ordering stores for current sales channel
874
+ * @property {string} [type] - For hard type delivery, store selection is
875
+ * compulsory. For soft type, delivery store selection is optional.
876
+ * @property {string} [_id] - The unique identifier (24-digit Mongo Object ID)
877
+ * of the ordering store
878
+ * @property {string} [app] - Alphanumeric ID allotted to an application (sales
879
+ * channel website) created within a business account
880
+ * @property {number} [__v] - Version key for tracking ordering stores. Default
881
+ * value is zero.
882
882
  */
883
883
 
884
884
  class ConfigurationApplicationModel {
885
- /** @returns {Android} */
886
- static Android() {
885
+ /** @returns {ApplicationAboutResponse} */
886
+ static ApplicationAboutResponse() {
887
887
  return Joi.object({
888
- api_key: Joi.string().allow(""),
889
- application_id: Joi.string().allow(""),
888
+ application_info: ConfigurationApplicationModel.ApplicationInfo(),
890
889
  });
891
890
  }
892
891
 
893
- /** @returns {AppCurrencyResponse} */
894
- static AppCurrencyResponse() {
892
+ /** @returns {ApplicationInfo} */
893
+ static ApplicationInfo() {
895
894
  return Joi.object({
895
+ company_info: ConfigurationApplicationModel.CompanyInfo(),
896
+ owner_info: ConfigurationApplicationModel.OwnerInfo(),
896
897
  _id: Joi.string().allow(""),
897
- application: Joi.string().allow(""),
898
+ domain: ConfigurationApplicationModel.Domain(),
899
+ website: ConfigurationApplicationModel.ApplicationWebsite(),
900
+ cors: ConfigurationApplicationModel.ApplicationCors(),
901
+ description: Joi.string().allow(""),
902
+ name: Joi.string().allow(""),
903
+ meta: Joi.array().items(ConfigurationApplicationModel.ApplicationMeta()),
904
+ token: Joi.string().allow(""),
905
+ secret: Joi.string().allow(""),
898
906
  created_at: Joi.string().allow(""),
899
- default_currency: ConfigurationApplicationModel.DefaultCurrency(),
900
- modified_at: Joi.string().allow(""),
901
- supported_currency: Joi.array().items(
902
- ConfigurationApplicationModel.Currency()
903
- ),
907
+ banner: ConfigurationApplicationModel.SecureUrl(),
908
+ logo: ConfigurationApplicationModel.SecureUrl(),
909
+ is_active: Joi.boolean(),
910
+ mode: Joi.string().allow(""),
911
+ tokens: Joi.array().items(ConfigurationApplicationModel.TokenSchema()),
912
+ domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
913
+ favicon: ConfigurationApplicationModel.SecureUrl(),
914
+ mobile_logo: ConfigurationApplicationModel.SecureUrl(),
915
+ slug: Joi.string().allow(""),
904
916
  });
905
917
  }
906
918
 
907
- /** @returns {AppFeature} */
908
- static AppFeature() {
919
+ /** @returns {CompanyInfo} */
920
+ static CompanyInfo() {
909
921
  return Joi.object({
910
- __v: Joi.number(),
911
922
  _id: Joi.string().allow(""),
912
- app: Joi.string().allow(""),
913
- cart: ConfigurationApplicationModel.CartFeature(),
914
- common: ConfigurationApplicationModel.CommonFeature(),
915
- created_at: Joi.string().allow(""),
916
- home_page: ConfigurationApplicationModel.HomePageFeature(),
917
- landing_page: ConfigurationApplicationModel.LandingPageFeature(),
918
- modified_at: Joi.string().allow(""),
919
- order: ConfigurationApplicationModel.OrderFeature(),
920
- pcr: ConfigurationApplicationModel.PcrFeature(),
921
- product_detail: ConfigurationApplicationModel.ProductDetailFeature(),
922
- qr: ConfigurationApplicationModel.QrFeature(),
923
- registration_page: ConfigurationApplicationModel.RegistrationPageFeature(),
923
+ uid: Joi.number(),
924
+ created_on: Joi.string().allow(""),
925
+ is_active: Joi.boolean(),
926
+ name: Joi.string().allow(""),
927
+ addresses: Joi.array().items(
928
+ ConfigurationApplicationModel.CompanyAboutAddress()
929
+ ),
930
+ notification_emails: Joi.array().items(Joi.string().allow("")),
924
931
  });
925
932
  }
926
933
 
927
- /** @returns {AppFeatureResponse} */
928
- static AppFeatureResponse() {
934
+ /** @returns {OwnerInfo} */
935
+ static OwnerInfo() {
929
936
  return Joi.object({
930
- feature: ConfigurationApplicationModel.AppFeature(),
937
+ _id: Joi.string().allow(""),
938
+ emails: Joi.array().items(ConfigurationApplicationModel.UserEmail()),
939
+ phone_numbers: Joi.array().items(
940
+ ConfigurationApplicationModel.UserPhoneNumber()
941
+ ),
942
+ first_name: Joi.string().allow(""),
943
+ last_name: Joi.string().allow(""),
944
+ profile_pic: Joi.string().allow(""),
931
945
  });
932
946
  }
933
947
 
934
- /** @returns {Application} */
935
- static Application() {
948
+ /** @returns {SupportedLanguage} */
949
+ static SupportedLanguage() {
936
950
  return Joi.object({
937
- __v: Joi.number(),
938
- _id: Joi.string().allow(""),
939
- app_type: Joi.string().allow(""),
940
- auth: ConfigurationApplicationModel.ApplicationAuth(),
941
- banner: ConfigurationApplicationModel.SecureUrl(),
942
- cache_ttl: Joi.number(),
943
- channel_type: Joi.string().allow(""),
944
- company_id: Joi.number(),
945
- cors: ConfigurationApplicationModel.ApplicationCors(),
946
- created_at: Joi.string().allow(""),
947
- description: Joi.string().allow(""),
948
- domain: ConfigurationApplicationModel.Domain(),
949
- domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
950
- favicon: ConfigurationApplicationModel.SecureUrl(),
951
- is_active: Joi.boolean(),
952
- is_internal: Joi.boolean(),
953
- logo: ConfigurationApplicationModel.SecureUrl(),
954
- meta: Joi.array().items(ConfigurationApplicationModel.ApplicationMeta()),
955
- mobile_logo: ConfigurationApplicationModel.SecureUrl(),
956
- mode: Joi.string().allow(""),
957
- modified_at: Joi.string().allow(""),
958
951
  name: Joi.string().allow(""),
959
- owner: Joi.string().allow(""),
960
- redirections: Joi.array().items(
961
- ConfigurationApplicationModel.ApplicationRedirections()
952
+ code: Joi.string().allow(""),
953
+ });
954
+ }
955
+
956
+ /** @returns {LanguageResponse} */
957
+ static LanguageResponse() {
958
+ return Joi.object({
959
+ items: Joi.array().items(
960
+ ConfigurationApplicationModel.SupportedLanguage()
962
961
  ),
963
- slug: Joi.string().allow(""),
964
- status: Joi.string().allow(""),
965
- token: Joi.string().allow(""),
966
- tokens: Joi.array().items(ConfigurationApplicationModel.TokenSchema()),
967
- website: ConfigurationApplicationModel.ApplicationWebsite(),
968
962
  });
969
963
  }
970
964
 
971
- /** @returns {ApplicationAboutResponse} */
972
- static ApplicationAboutResponse() {
965
+ /** @returns {AppStaffResponse} */
966
+ static AppStaffResponse() {
973
967
  return Joi.object({
974
- application_info: ConfigurationApplicationModel.ApplicationInfo(),
968
+ staff_users: Joi.array().items(ConfigurationApplicationModel.AppStaff()),
969
+ });
970
+ }
971
+
972
+ /** @returns {AppStaffListResponse} */
973
+ static AppStaffListResponse() {
974
+ return Joi.object({
975
+ page: ConfigurationApplicationModel.Page(),
976
+ items: Joi.array().items(ConfigurationApplicationModel.AppStaff()),
975
977
  });
976
978
  }
977
979
 
978
- /** @returns {ApplicationAuth} */
979
- static ApplicationAuth() {
980
+ /** @returns {OrderingStoreSelectRequest} */
981
+ static OrderingStoreSelectRequest() {
980
982
  return Joi.object({
981
- enabled: Joi.boolean(),
983
+ ordering_store: ConfigurationApplicationModel.OrderingStoreSelect().required(),
982
984
  });
983
985
  }
984
986
 
985
- /** @returns {ApplicationCors} */
986
- static ApplicationCors() {
987
+ /** @returns {OrderingStoreSelect} */
988
+ static OrderingStoreSelect() {
987
989
  return Joi.object({
988
- domains: Joi.array().items(Joi.string().allow("")),
990
+ uid: Joi.number().required(),
989
991
  });
990
992
  }
991
993
 
992
- /** @returns {ApplicationDetail} */
993
- static ApplicationDetail() {
994
+ /** @returns {AppStaff} */
995
+ static AppStaff() {
994
996
  return Joi.object({
995
997
  _id: Joi.string().allow(""),
996
- banner: ConfigurationApplicationModel.SecureUrl(),
997
- company_id: Joi.number(),
998
- description: Joi.string().allow(""),
999
- domain: ConfigurationApplicationModel.Domain(),
1000
- domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
1001
- favicon: ConfigurationApplicationModel.SecureUrl(),
1002
- logo: ConfigurationApplicationModel.SecureUrl(),
1003
- mobile_logo: ConfigurationApplicationModel.SecureUrl(),
1004
- name: Joi.string().allow("").required(),
1005
- slug: Joi.string().allow(""),
998
+ order_incent: Joi.boolean(),
999
+ stores: Joi.array().items(Joi.number()),
1000
+ application: Joi.string().allow(""),
1001
+ title: Joi.string().allow(""),
1002
+ user: Joi.string().allow(""),
1003
+ employee_code: Joi.string().allow(""),
1004
+ first_name: Joi.string().allow(""),
1005
+ last_name: Joi.string().allow(""),
1006
+ profile_pic_url: Joi.string().allow(""),
1006
1007
  });
1007
1008
  }
1008
1009
 
1009
- /** @returns {ApplicationInfo} */
1010
- static ApplicationInfo() {
1010
+ /** @returns {AppTokenResponse} */
1011
+ static AppTokenResponse() {
1011
1012
  return Joi.object({
1013
+ tokens: ConfigurationApplicationModel.Tokens(),
1012
1014
  _id: Joi.string().allow(""),
1013
- banner: ConfigurationApplicationModel.SecureUrl(),
1014
- company_info: ConfigurationApplicationModel.CompanyInfo(),
1015
- cors: ConfigurationApplicationModel.ApplicationCors(),
1015
+ application: Joi.string().allow(""),
1016
1016
  created_at: Joi.string().allow(""),
1017
- description: Joi.string().allow(""),
1018
- domain: ConfigurationApplicationModel.Domain(),
1019
- domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
1020
- favicon: ConfigurationApplicationModel.SecureUrl(),
1021
- is_active: Joi.boolean(),
1022
- logo: ConfigurationApplicationModel.SecureUrl(),
1023
- meta: Joi.array().items(ConfigurationApplicationModel.ApplicationMeta()),
1024
- mobile_logo: ConfigurationApplicationModel.SecureUrl(),
1025
- mode: Joi.string().allow(""),
1026
- name: Joi.string().allow(""),
1027
- owner_info: ConfigurationApplicationModel.OwnerInfo(),
1028
- secret: Joi.string().allow(""),
1029
- slug: Joi.string().allow(""),
1030
- token: Joi.string().allow(""),
1031
- tokens: Joi.array().items(ConfigurationApplicationModel.TokenSchema()),
1032
- website: ConfigurationApplicationModel.ApplicationWebsite(),
1017
+ modified_at: Joi.string().allow(""),
1018
+ __v: Joi.number(),
1033
1019
  });
1034
1020
  }
1035
1021
 
1036
- /** @returns {ApplicationInformation} */
1037
- static ApplicationInformation() {
1022
+ /** @returns {Tokens} */
1023
+ static Tokens() {
1038
1024
  return Joi.object({
1039
- __v: Joi.number(),
1040
- _id: Joi.string().allow(""),
1041
- address: ConfigurationApplicationModel.InformationAddress(),
1042
- application: Joi.string().allow(""),
1043
- business_highlights: Joi.array().items(
1044
- ConfigurationApplicationModel.BusinessHighlights()
1045
- ),
1046
- copyright_text: Joi.string().allow(""),
1047
- created_at: Joi.string().allow(""),
1048
- links: Joi.array().items(ConfigurationApplicationModel.Links()),
1049
- modified_at: Joi.string().allow(""),
1050
- social_links: ConfigurationApplicationModel.SocialLinks(),
1051
- support: ConfigurationApplicationModel.InformationSupport(),
1025
+ firebase: ConfigurationApplicationModel.Firebase(),
1026
+ moengage: ConfigurationApplicationModel.Moengage(),
1027
+ segment: ConfigurationApplicationModel.Segment(),
1028
+ gtm: ConfigurationApplicationModel.Gtm(),
1029
+ freshchat: ConfigurationApplicationModel.Freshchat(),
1030
+ safetynet: ConfigurationApplicationModel.Safetynet(),
1031
+ fynd_rewards: ConfigurationApplicationModel.FyndRewards(),
1032
+ google_map: ConfigurationApplicationModel.GoogleMap(),
1052
1033
  });
1053
1034
  }
1054
1035
 
1055
- /** @returns {ApplicationMeta} */
1056
- static ApplicationMeta() {
1036
+ /** @returns {Firebase} */
1037
+ static Firebase() {
1057
1038
  return Joi.object({
1058
- name: Joi.string().allow(""),
1059
- value: Joi.string().allow(""),
1039
+ credentials: ConfigurationApplicationModel.Credentials(),
1040
+ enabled: Joi.boolean(),
1060
1041
  });
1061
1042
  }
1062
1043
 
1063
- /** @returns {ApplicationRedirections} */
1064
- static ApplicationRedirections() {
1044
+ /** @returns {Credentials} */
1045
+ static Credentials() {
1065
1046
  return Joi.object({
1066
- redirect_from: Joi.string().allow(""),
1067
- redirect_to: Joi.string().allow(""),
1068
- type: Joi.string().allow(""),
1047
+ ios: ConfigurationApplicationModel.Ios(),
1048
+ android: ConfigurationApplicationModel.Android(),
1049
+ project_id: Joi.string().allow(""),
1050
+ gcm_sender_id: Joi.string().allow(""),
1051
+ application_id: Joi.string().allow(""),
1052
+ api_key: Joi.string().allow(""),
1069
1053
  });
1070
1054
  }
1071
1055
 
1072
- /** @returns {ApplicationWebsite} */
1073
- static ApplicationWebsite() {
1056
+ /** @returns {Ios} */
1057
+ static Ios() {
1074
1058
  return Joi.object({
1075
- basepath: Joi.string().allow(""),
1076
- enabled: Joi.boolean(),
1059
+ application_id: Joi.string().allow(""),
1060
+ api_key: Joi.string().allow(""),
1077
1061
  });
1078
1062
  }
1079
1063
 
1080
- /** @returns {AppStaff} */
1081
- static AppStaff() {
1064
+ /** @returns {Android} */
1065
+ static Android() {
1082
1066
  return Joi.object({
1083
- _id: Joi.string().allow(""),
1084
- application: Joi.string().allow(""),
1085
- employee_code: Joi.string().allow(""),
1086
- first_name: Joi.string().allow(""),
1087
- last_name: Joi.string().allow(""),
1088
- order_incent: Joi.boolean(),
1089
- profile_pic_url: Joi.string().allow(""),
1090
- stores: Joi.array().items(Joi.number()),
1091
- title: Joi.string().allow(""),
1092
- user: Joi.string().allow(""),
1067
+ application_id: Joi.string().allow(""),
1068
+ api_key: Joi.string().allow(""),
1093
1069
  });
1094
1070
  }
1095
1071
 
1096
- /** @returns {AppStaffListResponse} */
1097
- static AppStaffListResponse() {
1072
+ /** @returns {Moengage} */
1073
+ static Moengage() {
1098
1074
  return Joi.object({
1099
- items: Joi.array().items(ConfigurationApplicationModel.AppStaff()),
1100
- page: ConfigurationApplicationModel.Page(),
1075
+ credentials: ConfigurationApplicationModel.MoengageCredentials(),
1076
+ enabled: Joi.boolean(),
1101
1077
  });
1102
1078
  }
1103
1079
 
1104
- /** @returns {AppStaffResponse} */
1105
- static AppStaffResponse() {
1080
+ /** @returns {MoengageCredentials} */
1081
+ static MoengageCredentials() {
1106
1082
  return Joi.object({
1107
- staff_users: Joi.array().items(ConfigurationApplicationModel.AppStaff()),
1083
+ app_id: Joi.string().allow(""),
1108
1084
  });
1109
1085
  }
1110
1086
 
1111
- /** @returns {AppTokenResponse} */
1112
- static AppTokenResponse() {
1087
+ /** @returns {Segment} */
1088
+ static Segment() {
1113
1089
  return Joi.object({
1114
- __v: Joi.number(),
1115
- _id: Joi.string().allow(""),
1116
- application: Joi.string().allow(""),
1117
- created_at: Joi.string().allow(""),
1118
- modified_at: Joi.string().allow(""),
1119
- tokens: ConfigurationApplicationModel.Tokens(),
1090
+ credentials: ConfigurationApplicationModel.SegmentCredentials(),
1091
+ enabled: Joi.boolean(),
1120
1092
  });
1121
1093
  }
1122
1094
 
1123
- /** @returns {BlogLink} */
1124
- static BlogLink() {
1095
+ /** @returns {SegmentCredentials} */
1096
+ static SegmentCredentials() {
1125
1097
  return Joi.object({
1126
- icon: Joi.string().allow(""),
1127
- link: Joi.string().allow(""),
1128
- title: Joi.string().allow(""),
1098
+ write_key: Joi.string().allow(""),
1129
1099
  });
1130
1100
  }
1131
1101
 
1132
- /** @returns {BusinessHighlights} */
1133
- static BusinessHighlights() {
1102
+ /** @returns {Gtm} */
1103
+ static Gtm() {
1134
1104
  return Joi.object({
1135
- _id: Joi.string().allow(""),
1136
- icon: Joi.string().allow(""),
1137
- sub_title: Joi.string().allow(""),
1138
- title: Joi.string().allow(""),
1105
+ credentials: ConfigurationApplicationModel.GtmCredentials(),
1106
+ enabled: Joi.boolean(),
1139
1107
  });
1140
1108
  }
1141
1109
 
1142
- /** @returns {CartFeature} */
1143
- static CartFeature() {
1110
+ /** @returns {GtmCredentials} */
1111
+ static GtmCredentials() {
1144
1112
  return Joi.object({
1145
- google_map: Joi.boolean(),
1146
- gst_input: Joi.boolean(),
1147
- placing_for_customer: Joi.boolean(),
1148
- revenue_engine_coupon: Joi.boolean(),
1149
- staff_selection: Joi.boolean(),
1113
+ api_key: Joi.string().allow(""),
1150
1114
  });
1151
1115
  }
1152
1116
 
1153
- /** @returns {CommonFeature} */
1154
- static CommonFeature() {
1117
+ /** @returns {Freshchat} */
1118
+ static Freshchat() {
1155
1119
  return Joi.object({
1156
- communication_optin_dialog: ConfigurationApplicationModel.CommunicationOptinDialogFeature(),
1157
- compare_products: ConfigurationApplicationModel.CompareProductsFeature(),
1158
- currency: ConfigurationApplicationModel.CurrencyFeature(),
1159
- deployment_store_selection: ConfigurationApplicationModel.DeploymentStoreSelectionFeature(),
1160
- feedback: ConfigurationApplicationModel.FeedbackFeature(),
1161
- international_shipping: ConfigurationApplicationModel.InternationalShipping(),
1162
- listing_page: ConfigurationApplicationModel.ListingPageFeature(),
1163
- listing_price: ConfigurationApplicationModel.ListingPriceFeature(),
1164
- revenue_engine: ConfigurationApplicationModel.RevenueEngineFeature(),
1165
- reward_points: ConfigurationApplicationModel.RewardPointsConfig(),
1120
+ credentials: ConfigurationApplicationModel.FreshchatCredentials(),
1121
+ enabled: Joi.boolean(),
1166
1122
  });
1167
1123
  }
1168
1124
 
1169
- /** @returns {CommunicationOptinDialogFeature} */
1170
- static CommunicationOptinDialogFeature() {
1125
+ /** @returns {FreshchatCredentials} */
1126
+ static FreshchatCredentials() {
1171
1127
  return Joi.object({
1172
- visibility: Joi.boolean(),
1128
+ app_id: Joi.string().allow(""),
1129
+ app_key: Joi.string().allow(""),
1130
+ web_token: Joi.string().allow(""),
1173
1131
  });
1174
1132
  }
1175
1133
 
1176
- /** @returns {CompanyAboutAddress} */
1177
- static CompanyAboutAddress() {
1134
+ /** @returns {Safetynet} */
1135
+ static Safetynet() {
1178
1136
  return Joi.object({
1179
- address_type: Joi.string().allow(""),
1180
- address1: Joi.string().allow(""),
1181
- address2: Joi.string().allow(""),
1182
- city: Joi.string().allow(""),
1183
- country: Joi.string().allow(""),
1184
- pincode: Joi.number(),
1185
- state: Joi.string().allow(""),
1137
+ credentials: ConfigurationApplicationModel.SafetynetCredentials(),
1138
+ enabled: Joi.boolean(),
1186
1139
  });
1187
1140
  }
1188
1141
 
1189
- /** @returns {CompanyInfo} */
1190
- static CompanyInfo() {
1142
+ /** @returns {SafetynetCredentials} */
1143
+ static SafetynetCredentials() {
1191
1144
  return Joi.object({
1192
- _id: Joi.string().allow(""),
1193
- addresses: Joi.array().items(
1194
- ConfigurationApplicationModel.CompanyAboutAddress()
1195
- ),
1196
- created_on: Joi.string().allow(""),
1197
- is_active: Joi.boolean(),
1198
- name: Joi.string().allow(""),
1199
- notification_emails: Joi.array().items(Joi.string().allow("")),
1200
- uid: Joi.number(),
1145
+ api_key: Joi.string().allow(""),
1201
1146
  });
1202
1147
  }
1203
1148
 
1204
- /** @returns {CompareProductsFeature} */
1205
- static CompareProductsFeature() {
1149
+ /** @returns {FyndRewards} */
1150
+ static FyndRewards() {
1206
1151
  return Joi.object({
1207
- enabled: Joi.boolean(),
1152
+ credentials: ConfigurationApplicationModel.FyndRewardsCredentials(),
1208
1153
  });
1209
1154
  }
1210
1155
 
1211
- /** @returns {Credentials} */
1212
- static Credentials() {
1156
+ /** @returns {FyndRewardsCredentials} */
1157
+ static FyndRewardsCredentials() {
1213
1158
  return Joi.object({
1214
- android: ConfigurationApplicationModel.Android(),
1215
- api_key: Joi.string().allow(""),
1216
- application_id: Joi.string().allow(""),
1217
- gcm_sender_id: Joi.string().allow(""),
1218
- ios: ConfigurationApplicationModel.Ios(),
1219
- project_id: Joi.string().allow(""),
1159
+ public_key: Joi.string().allow(""),
1220
1160
  });
1221
1161
  }
1222
1162
 
1223
- /** @returns {Credit} */
1224
- static Credit() {
1163
+ /** @returns {GoogleMap} */
1164
+ static GoogleMap() {
1225
1165
  return Joi.object({
1226
- enabled: Joi.boolean(),
1166
+ credentials: ConfigurationApplicationModel.GoogleMapCredentials(),
1227
1167
  });
1228
1168
  }
1229
1169
 
1230
- /** @returns {CurrenciesResponse} */
1231
- static CurrenciesResponse() {
1170
+ /** @returns {GoogleMapCredentials} */
1171
+ static GoogleMapCredentials() {
1232
1172
  return Joi.object({
1233
- items: Joi.array().items(ConfigurationApplicationModel.Currency()),
1173
+ api_key: Joi.string().allow(""),
1234
1174
  });
1235
1175
  }
1236
1176
 
1237
- /** @returns {Currency} */
1238
- static Currency() {
1177
+ /** @returns {RewardPointsConfig} */
1178
+ static RewardPointsConfig() {
1239
1179
  return Joi.object({
1240
- _id: Joi.string().allow(""),
1241
- code: Joi.string().allow(""),
1242
- country_code: Joi.string().allow(""),
1243
- country_name: Joi.string().allow(""),
1244
- created_at: Joi.string().allow(""),
1245
- decimal_digits: Joi.number(),
1246
- is_active: Joi.boolean(),
1247
- modified_at: Joi.string().allow(""),
1248
- name: Joi.string().allow(""),
1249
- symbol: Joi.string().allow(""),
1180
+ credit: ConfigurationApplicationModel.Credit(),
1181
+ debit: ConfigurationApplicationModel.Debit(),
1250
1182
  });
1251
1183
  }
1252
1184
 
1253
- /** @returns {CurrencyFeature} */
1254
- static CurrencyFeature() {
1185
+ /** @returns {Credit} */
1186
+ static Credit() {
1255
1187
  return Joi.object({
1256
- default_currency: Joi.string().allow(""),
1257
- type: Joi.string().allow(""),
1258
- value: Joi.array().items(Joi.string().allow("")),
1188
+ enabled: Joi.boolean(),
1259
1189
  });
1260
1190
  }
1261
1191
 
1262
1192
  /** @returns {Debit} */
1263
1193
  static Debit() {
1264
1194
  return Joi.object({
1265
- auto_apply: Joi.boolean(),
1266
1195
  enabled: Joi.boolean(),
1196
+ auto_apply: Joi.boolean(),
1267
1197
  strategy_channel: Joi.string().allow(""),
1268
1198
  });
1269
1199
  }
1270
1200
 
1271
- /** @returns {DefaultCurrency} */
1272
- static DefaultCurrency() {
1201
+ /** @returns {ProductDetailFeature} */
1202
+ static ProductDetailFeature() {
1273
1203
  return Joi.object({
1274
- code: Joi.string().allow(""),
1275
- ref: Joi.string().allow(""),
1204
+ similar: Joi.array().items(Joi.string().allow("")),
1205
+ seller_selection: Joi.boolean(),
1206
+ update_product_meta: Joi.boolean(),
1207
+ request_product: Joi.boolean(),
1276
1208
  });
1277
1209
  }
1278
1210
 
1279
- /** @returns {DeploymentStoreSelectionFeature} */
1280
- static DeploymentStoreSelectionFeature() {
1211
+ /** @returns {LaunchPage} */
1212
+ static LaunchPage() {
1281
1213
  return Joi.object({
1282
- enabled: Joi.boolean(),
1283
- type: Joi.string().allow(""),
1214
+ page_type: Joi.string().allow(""),
1215
+ params: Joi.any(),
1216
+ query: Joi.any(),
1284
1217
  });
1285
1218
  }
1286
1219
 
1287
- /** @returns {Domain} */
1288
- static Domain() {
1220
+ /** @returns {LandingPageFeature} */
1221
+ static LandingPageFeature() {
1289
1222
  return Joi.object({
1290
- _id: Joi.string().allow(""),
1291
- is_predefined: Joi.boolean(),
1292
- is_primary: Joi.boolean(),
1293
- is_shortlink: Joi.boolean(),
1294
- name: Joi.string().allow(""),
1295
- verified: Joi.boolean(),
1223
+ launch_page: ConfigurationApplicationModel.LaunchPage(),
1224
+ continue_as_guest: Joi.boolean(),
1225
+ login_btn_text: Joi.string().allow(""),
1226
+ show_domain_textbox: Joi.boolean(),
1227
+ show_register_btn: Joi.boolean(),
1296
1228
  });
1297
1229
  }
1298
1230
 
1299
- /** @returns {FacebookLink} */
1300
- static FacebookLink() {
1231
+ /** @returns {RegistrationPageFeature} */
1232
+ static RegistrationPageFeature() {
1301
1233
  return Joi.object({
1302
- icon: Joi.string().allow(""),
1303
- link: Joi.string().allow(""),
1304
- title: Joi.string().allow(""),
1234
+ ask_store_address: Joi.boolean(),
1305
1235
  });
1306
1236
  }
1307
1237
 
1308
- /** @returns {FeedbackFeature} */
1309
- static FeedbackFeature() {
1238
+ /** @returns {AppFeature} */
1239
+ static AppFeature() {
1310
1240
  return Joi.object({
1311
- enabled: Joi.boolean(),
1241
+ product_detail: ConfigurationApplicationModel.ProductDetailFeature(),
1242
+ landing_page: ConfigurationApplicationModel.LandingPageFeature(),
1243
+ registration_page: ConfigurationApplicationModel.RegistrationPageFeature(),
1244
+ home_page: ConfigurationApplicationModel.HomePageFeature(),
1245
+ common: ConfigurationApplicationModel.CommonFeature(),
1246
+ cart: ConfigurationApplicationModel.CartFeature(),
1247
+ qr: ConfigurationApplicationModel.QrFeature(),
1248
+ pcr: ConfigurationApplicationModel.PcrFeature(),
1249
+ order: ConfigurationApplicationModel.OrderFeature(),
1250
+ _id: Joi.string().allow(""),
1251
+ app: Joi.string().allow(""),
1252
+ created_at: Joi.string().allow(""),
1253
+ modified_at: Joi.string().allow(""),
1254
+ __v: Joi.number(),
1312
1255
  });
1313
1256
  }
1314
1257
 
1315
- /** @returns {Firebase} */
1316
- static Firebase() {
1258
+ /** @returns {HomePageFeature} */
1259
+ static HomePageFeature() {
1317
1260
  return Joi.object({
1318
- credentials: ConfigurationApplicationModel.Credentials(),
1319
- enabled: Joi.boolean(),
1261
+ order_processing: Joi.boolean(),
1320
1262
  });
1321
1263
  }
1322
1264
 
1323
- /** @returns {Freshchat} */
1324
- static Freshchat() {
1265
+ /** @returns {CommonFeature} */
1266
+ static CommonFeature() {
1325
1267
  return Joi.object({
1326
- credentials: ConfigurationApplicationModel.FreshchatCredentials(),
1327
- enabled: Joi.boolean(),
1268
+ communication_optin_dialog: ConfigurationApplicationModel.CommunicationOptinDialogFeature(),
1269
+ deployment_store_selection: ConfigurationApplicationModel.DeploymentStoreSelectionFeature(),
1270
+ listing_price: ConfigurationApplicationModel.ListingPriceFeature(),
1271
+ currency: ConfigurationApplicationModel.CurrencyFeature(),
1272
+ revenue_engine: ConfigurationApplicationModel.RevenueEngineFeature(),
1273
+ feedback: ConfigurationApplicationModel.FeedbackFeature(),
1274
+ compare_products: ConfigurationApplicationModel.CompareProductsFeature(),
1275
+ reward_points: ConfigurationApplicationModel.RewardPointsConfig(),
1276
+ listing_page: ConfigurationApplicationModel.ListingPageFeature(),
1277
+ international_shipping: ConfigurationApplicationModel.InternationalShipping(),
1328
1278
  });
1329
1279
  }
1330
1280
 
1331
- /** @returns {FreshchatCredentials} */
1332
- static FreshchatCredentials() {
1281
+ /** @returns {InternationalShipping} */
1282
+ static InternationalShipping() {
1333
1283
  return Joi.object({
1334
- app_id: Joi.string().allow(""),
1335
- app_key: Joi.string().allow(""),
1336
- web_token: Joi.string().allow(""),
1284
+ enabled: Joi.boolean(),
1337
1285
  });
1338
1286
  }
1339
1287
 
1340
- /** @returns {FyndRewards} */
1341
- static FyndRewards() {
1288
+ /** @returns {CommunicationOptinDialogFeature} */
1289
+ static CommunicationOptinDialogFeature() {
1342
1290
  return Joi.object({
1343
- credentials: ConfigurationApplicationModel.FyndRewardsCredentials(),
1291
+ visibility: Joi.boolean(),
1344
1292
  });
1345
1293
  }
1346
1294
 
1347
- /** @returns {FyndRewardsCredentials} */
1348
- static FyndRewardsCredentials() {
1295
+ /** @returns {DeploymentStoreSelectionFeature} */
1296
+ static DeploymentStoreSelectionFeature() {
1349
1297
  return Joi.object({
1350
- public_key: Joi.string().allow(""),
1298
+ enabled: Joi.boolean(),
1299
+ type: Joi.string().allow(""),
1351
1300
  });
1352
1301
  }
1353
1302
 
1354
- /** @returns {GoogleMap} */
1355
- static GoogleMap() {
1303
+ /** @returns {ListingPriceFeature} */
1304
+ static ListingPriceFeature() {
1356
1305
  return Joi.object({
1357
- credentials: ConfigurationApplicationModel.GoogleMapCredentials(),
1306
+ value: Joi.string().allow(""),
1307
+ sort: Joi.string().allow(""),
1358
1308
  });
1359
1309
  }
1360
1310
 
1361
- /** @returns {GoogleMapCredentials} */
1362
- static GoogleMapCredentials() {
1311
+ /** @returns {ListingPageFeature} */
1312
+ static ListingPageFeature() {
1363
1313
  return Joi.object({
1364
- api_key: Joi.string().allow(""),
1314
+ sort_on: Joi.string().allow(""),
1365
1315
  });
1366
1316
  }
1367
1317
 
1368
- /** @returns {GooglePlusLink} */
1369
- static GooglePlusLink() {
1318
+ /** @returns {CurrencyFeature} */
1319
+ static CurrencyFeature() {
1370
1320
  return Joi.object({
1371
- icon: Joi.string().allow(""),
1372
- link: Joi.string().allow(""),
1373
- title: Joi.string().allow(""),
1321
+ value: Joi.array().items(Joi.string().allow("")),
1322
+ type: Joi.string().allow(""),
1323
+ default_currency: Joi.string().allow(""),
1374
1324
  });
1375
1325
  }
1376
1326
 
1377
- /** @returns {Gtm} */
1378
- static Gtm() {
1327
+ /** @returns {RevenueEngineFeature} */
1328
+ static RevenueEngineFeature() {
1379
1329
  return Joi.object({
1380
- credentials: ConfigurationApplicationModel.GtmCredentials(),
1381
1330
  enabled: Joi.boolean(),
1382
1331
  });
1383
1332
  }
1384
1333
 
1385
- /** @returns {GtmCredentials} */
1386
- static GtmCredentials() {
1334
+ /** @returns {FeedbackFeature} */
1335
+ static FeedbackFeature() {
1387
1336
  return Joi.object({
1388
- api_key: Joi.string().allow(""),
1337
+ enabled: Joi.boolean(),
1389
1338
  });
1390
1339
  }
1391
1340
 
1392
- /** @returns {HomePageFeature} */
1393
- static HomePageFeature() {
1341
+ /** @returns {CompareProductsFeature} */
1342
+ static CompareProductsFeature() {
1394
1343
  return Joi.object({
1395
- order_processing: Joi.boolean(),
1344
+ enabled: Joi.boolean(),
1396
1345
  });
1397
1346
  }
1398
1347
 
1399
- /** @returns {InformationAddress} */
1400
- static InformationAddress() {
1348
+ /** @returns {CartFeature} */
1349
+ static CartFeature() {
1401
1350
  return Joi.object({
1402
- address_line: Joi.array().items(Joi.string().allow("")),
1403
- city: Joi.string().allow(""),
1404
- country: Joi.string().allow(""),
1405
- loc: ConfigurationApplicationModel.InformationLoc(),
1406
- phone: Joi.array().items(
1407
- ConfigurationApplicationModel.InformationPhone()
1408
- ),
1409
- pincode: Joi.number(),
1351
+ gst_input: Joi.boolean(),
1352
+ staff_selection: Joi.boolean(),
1353
+ placing_for_customer: Joi.boolean(),
1354
+ google_map: Joi.boolean(),
1355
+ revenue_engine_coupon: Joi.boolean(),
1410
1356
  });
1411
1357
  }
1412
1358
 
1413
- /** @returns {InformationLoc} */
1414
- static InformationLoc() {
1359
+ /** @returns {QrFeature} */
1360
+ static QrFeature() {
1415
1361
  return Joi.object({
1416
- coordinates: Joi.array().items(Joi.number()),
1417
- type: Joi.string().allow(""),
1362
+ application: Joi.boolean(),
1363
+ products: Joi.boolean(),
1364
+ collections: Joi.boolean(),
1418
1365
  });
1419
1366
  }
1420
1367
 
1421
- /** @returns {InformationPhone} */
1422
- static InformationPhone() {
1368
+ /** @returns {PcrFeature} */
1369
+ static PcrFeature() {
1423
1370
  return Joi.object({
1424
- code: Joi.string().allow(""),
1425
- number: Joi.string().allow(""),
1371
+ staff_selection: Joi.boolean(),
1426
1372
  });
1427
1373
  }
1428
1374
 
1429
- /** @returns {InformationSupport} */
1430
- static InformationSupport() {
1375
+ /** @returns {OrderFeature} */
1376
+ static OrderFeature() {
1431
1377
  return Joi.object({
1432
- email: Joi.array().items(
1433
- ConfigurationApplicationModel.InformationSupportEmail()
1434
- ),
1435
- phone: Joi.array().items(
1436
- ConfigurationApplicationModel.InformationSupportPhone()
1437
- ),
1438
- timing: Joi.string().allow(""),
1378
+ buy_again: Joi.boolean(),
1439
1379
  });
1440
1380
  }
1441
1381
 
1442
- /** @returns {InformationSupportEmail} */
1443
- static InformationSupportEmail() {
1382
+ /** @returns {AppFeatureResponse} */
1383
+ static AppFeatureResponse() {
1444
1384
  return Joi.object({
1445
- key: Joi.string().allow(""),
1446
- value: Joi.string().allow(""),
1385
+ feature: ConfigurationApplicationModel.AppFeature(),
1447
1386
  });
1448
1387
  }
1449
1388
 
1450
- /** @returns {InformationSupportPhone} */
1451
- static InformationSupportPhone() {
1389
+ /** @returns {Currency} */
1390
+ static Currency() {
1452
1391
  return Joi.object({
1392
+ _id: Joi.string().allow(""),
1393
+ is_active: Joi.boolean(),
1394
+ name: Joi.string().allow(""),
1453
1395
  code: Joi.string().allow(""),
1454
- key: Joi.string().allow(""),
1455
- number: Joi.string().allow(""),
1456
- });
1457
- }
1458
-
1459
- /** @returns {InstagramLink} */
1460
- static InstagramLink() {
1461
- return Joi.object({
1462
- icon: Joi.string().allow(""),
1463
- link: Joi.string().allow(""),
1464
- title: Joi.string().allow(""),
1396
+ created_at: Joi.string().allow(""),
1397
+ modified_at: Joi.string().allow(""),
1398
+ decimal_digits: Joi.number(),
1399
+ symbol: Joi.string().allow(""),
1400
+ country_name: Joi.string().allow(""),
1401
+ country_code: Joi.string().allow(""),
1465
1402
  });
1466
1403
  }
1467
1404
 
1468
- /** @returns {InternationalShipping} */
1469
- static InternationalShipping() {
1405
+ /** @returns {Domain} */
1406
+ static Domain() {
1470
1407
  return Joi.object({
1471
- enabled: Joi.boolean(),
1408
+ verified: Joi.boolean(),
1409
+ is_primary: Joi.boolean(),
1410
+ is_shortlink: Joi.boolean(),
1411
+ _id: Joi.string().allow(""),
1412
+ name: Joi.string().allow(""),
1413
+ is_predefined: Joi.boolean(),
1472
1414
  });
1473
1415
  }
1474
1416
 
1475
- /** @returns {InvalidPayloadRequest} */
1476
- static InvalidPayloadRequest() {
1417
+ /** @returns {ApplicationWebsite} */
1418
+ static ApplicationWebsite() {
1477
1419
  return Joi.object({
1478
- message: Joi.string().allow(""),
1420
+ enabled: Joi.boolean(),
1421
+ basepath: Joi.string().allow(""),
1479
1422
  });
1480
1423
  }
1481
1424
 
1482
- /** @returns {Ios} */
1483
- static Ios() {
1425
+ /** @returns {ApplicationCors} */
1426
+ static ApplicationCors() {
1484
1427
  return Joi.object({
1485
- api_key: Joi.string().allow(""),
1486
- application_id: Joi.string().allow(""),
1428
+ domains: Joi.array().items(Joi.string().allow("")),
1487
1429
  });
1488
1430
  }
1489
1431
 
1490
- /** @returns {LandingPageFeature} */
1491
- static LandingPageFeature() {
1432
+ /** @returns {ApplicationAuth} */
1433
+ static ApplicationAuth() {
1492
1434
  return Joi.object({
1493
- continue_as_guest: Joi.boolean(),
1494
- launch_page: ConfigurationApplicationModel.LaunchPage(),
1495
- login_btn_text: Joi.string().allow(""),
1496
- show_domain_textbox: Joi.boolean(),
1497
- show_register_btn: Joi.boolean(),
1435
+ enabled: Joi.boolean(),
1498
1436
  });
1499
1437
  }
1500
1438
 
1501
- /** @returns {LanguageResponse} */
1502
- static LanguageResponse() {
1439
+ /** @returns {ApplicationRedirections} */
1440
+ static ApplicationRedirections() {
1503
1441
  return Joi.object({
1504
- items: Joi.array().items(
1505
- ConfigurationApplicationModel.SupportedLanguage()
1506
- ),
1442
+ redirect_from: Joi.string().allow(""),
1443
+ redirect_to: Joi.string().allow(""),
1444
+ type: Joi.string().allow(""),
1507
1445
  });
1508
1446
  }
1509
1447
 
1510
- /** @returns {LaunchPage} */
1511
- static LaunchPage() {
1448
+ /** @returns {ApplicationMeta} */
1449
+ static ApplicationMeta() {
1512
1450
  return Joi.object({
1513
- page_type: Joi.string().allow(""),
1514
- params: Joi.any(),
1515
- query: Joi.any(),
1451
+ name: Joi.string().allow(""),
1452
+ value: Joi.string().allow(""),
1516
1453
  });
1517
1454
  }
1518
1455
 
1519
- /** @returns {LinkedInLink} */
1520
- static LinkedInLink() {
1456
+ /** @returns {SecureUrl} */
1457
+ static SecureUrl() {
1521
1458
  return Joi.object({
1522
- icon: Joi.string().allow(""),
1523
- link: Joi.string().allow(""),
1524
- title: Joi.string().allow(""),
1459
+ secure_url: Joi.string().allow(""),
1525
1460
  });
1526
1461
  }
1527
1462
 
1528
- /** @returns {Links} */
1529
- static Links() {
1463
+ /** @returns {Application} */
1464
+ static Application() {
1530
1465
  return Joi.object({
1531
- link: Joi.string().allow(""),
1532
- title: Joi.string().allow(""),
1466
+ website: ConfigurationApplicationModel.ApplicationWebsite(),
1467
+ cors: ConfigurationApplicationModel.ApplicationCors(),
1468
+ auth: ConfigurationApplicationModel.ApplicationAuth(),
1469
+ description: Joi.string().allow(""),
1470
+ channel_type: Joi.string().allow(""),
1471
+ cache_ttl: Joi.number(),
1472
+ is_internal: Joi.boolean(),
1473
+ is_active: Joi.boolean(),
1474
+ _id: Joi.string().allow(""),
1475
+ name: Joi.string().allow(""),
1476
+ owner: Joi.string().allow(""),
1477
+ company_id: Joi.number(),
1478
+ token: Joi.string().allow(""),
1479
+ redirections: Joi.array().items(
1480
+ ConfigurationApplicationModel.ApplicationRedirections()
1481
+ ),
1482
+ meta: Joi.array().items(ConfigurationApplicationModel.ApplicationMeta()),
1483
+ created_at: Joi.string().allow(""),
1484
+ modified_at: Joi.string().allow(""),
1485
+ __v: Joi.number(),
1486
+ banner: ConfigurationApplicationModel.SecureUrl(),
1487
+ logo: ConfigurationApplicationModel.SecureUrl(),
1488
+ favicon: ConfigurationApplicationModel.SecureUrl(),
1489
+ domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
1490
+ app_type: Joi.string().allow(""),
1491
+ mobile_logo: ConfigurationApplicationModel.SecureUrl(),
1492
+ domain: ConfigurationApplicationModel.Domain(),
1493
+ slug: Joi.string().allow(""),
1494
+ mode: Joi.string().allow(""),
1495
+ status: Joi.string().allow(""),
1496
+ tokens: Joi.array().items(ConfigurationApplicationModel.TokenSchema()),
1533
1497
  });
1534
1498
  }
1535
1499
 
1536
- /** @returns {ListingPageFeature} */
1537
- static ListingPageFeature() {
1500
+ /** @returns {TokenSchema} */
1501
+ static TokenSchema() {
1538
1502
  return Joi.object({
1539
- sort_on: Joi.string().allow(""),
1503
+ token: Joi.string().allow(""),
1504
+ created_by: Joi.object().pattern(/\S/, Joi.any()),
1505
+ created_at: Joi.string().allow(""),
1540
1506
  });
1541
1507
  }
1542
1508
 
1543
- /** @returns {ListingPriceFeature} */
1544
- static ListingPriceFeature() {
1509
+ /** @returns {NotFound} */
1510
+ static NotFound() {
1545
1511
  return Joi.object({
1546
- sort: Joi.string().allow(""),
1547
- value: Joi.string().allow(""),
1512
+ message: Joi.string().allow(""),
1548
1513
  });
1549
1514
  }
1550
1515
 
1551
- /** @returns {Moengage} */
1552
- static Moengage() {
1516
+ /** @returns {InvalidPayloadRequest} */
1517
+ static InvalidPayloadRequest() {
1553
1518
  return Joi.object({
1554
- credentials: ConfigurationApplicationModel.MoengageCredentials(),
1555
- enabled: Joi.boolean(),
1519
+ message: Joi.string().allow(""),
1556
1520
  });
1557
1521
  }
1558
1522
 
1559
- /** @returns {MoengageCredentials} */
1560
- static MoengageCredentials() {
1523
+ /** @returns {UnhandledError} */
1524
+ static UnhandledError() {
1561
1525
  return Joi.object({
1562
- app_id: Joi.string().allow(""),
1526
+ message: Joi.string().allow(""),
1563
1527
  });
1564
1528
  }
1565
1529
 
1566
- /** @returns {NotFound} */
1567
- static NotFound() {
1530
+ /** @returns {SuccessMessageResponse} */
1531
+ static SuccessMessageResponse() {
1568
1532
  return Joi.object({
1569
1533
  message: Joi.string().allow(""),
1570
1534
  });
1571
1535
  }
1572
1536
 
1573
- /** @returns {OptedStoreAddress} */
1574
- static OptedStoreAddress() {
1537
+ /** @returns {CompanyAboutAddress} */
1538
+ static CompanyAboutAddress() {
1575
1539
  return Joi.object({
1540
+ pincode: Joi.number(),
1576
1541
  address1: Joi.string().allow(""),
1577
1542
  address2: Joi.string().allow(""),
1578
1543
  city: Joi.string().allow(""),
1579
- country: Joi.string().allow(""),
1580
- lat_long: ConfigurationApplicationModel.StoreLatLong(),
1581
- pincode: Joi.number(),
1582
1544
  state: Joi.string().allow(""),
1545
+ country: Joi.string().allow(""),
1546
+ address_type: Joi.string().allow(""),
1583
1547
  });
1584
1548
  }
1585
1549
 
1586
- /** @returns {OrderFeature} */
1587
- static OrderFeature() {
1588
- return Joi.object({
1589
- buy_again: Joi.boolean(),
1590
- });
1591
- }
1592
-
1593
- /** @returns {OrderingStore} */
1594
- static OrderingStore() {
1550
+ /** @returns {UserEmail} */
1551
+ static UserEmail() {
1595
1552
  return Joi.object({
1596
- _id: Joi.string().allow(""),
1597
- address: ConfigurationApplicationModel.OptedStoreAddress(),
1598
- code: Joi.string().allow(""),
1599
- display_name: Joi.string().allow(""),
1600
- name: Joi.string().allow(""),
1601
- pincode: Joi.number(),
1602
- store_code: Joi.string().allow(""),
1603
- store_type: Joi.string().allow(""),
1604
- uid: Joi.number(),
1553
+ active: Joi.boolean(),
1554
+ primary: Joi.boolean(),
1555
+ verified: Joi.boolean(),
1556
+ email: Joi.string().allow(""),
1605
1557
  });
1606
1558
  }
1607
1559
 
1608
- /** @returns {OrderingStores} */
1609
- static OrderingStores() {
1560
+ /** @returns {UserPhoneNumber} */
1561
+ static UserPhoneNumber() {
1610
1562
  return Joi.object({
1611
- __v: Joi.number(),
1612
- _id: Joi.string().allow(""),
1613
- all_stores: Joi.boolean(),
1614
- app: Joi.string().allow(""),
1615
- deployed_stores: Joi.array().items(Joi.number()),
1616
- enabled: Joi.boolean(),
1617
- items: Joi.array().items(ConfigurationApplicationModel.OrderingStore()),
1618
- page: ConfigurationApplicationModel.Page(),
1619
- type: Joi.string().allow(""),
1563
+ active: Joi.boolean(),
1564
+ primary: Joi.boolean(),
1565
+ verified: Joi.boolean(),
1566
+ country_code: Joi.number(),
1567
+ phone: Joi.string().allow(""),
1620
1568
  });
1621
1569
  }
1622
1570
 
1623
- /** @returns {OrderingStoreSelect} */
1624
- static OrderingStoreSelect() {
1571
+ /** @returns {Page} */
1572
+ static Page() {
1625
1573
  return Joi.object({
1626
- uid: Joi.number().required(),
1574
+ item_total: Joi.number(),
1575
+ next_id: Joi.string().allow(""),
1576
+ has_previous: Joi.boolean(),
1577
+ has_next: Joi.boolean(),
1578
+ current: Joi.number(),
1579
+ type: Joi.string().allow("").required(),
1580
+ size: Joi.number(),
1627
1581
  });
1628
1582
  }
1629
1583
 
1630
- /** @returns {OrderingStoreSelectRequest} */
1631
- static OrderingStoreSelectRequest() {
1584
+ /** @returns {ApplicationInformation} */
1585
+ static ApplicationInformation() {
1632
1586
  return Joi.object({
1633
- ordering_store: ConfigurationApplicationModel.OrderingStoreSelect().required(),
1587
+ address: ConfigurationApplicationModel.InformationAddress(),
1588
+ support: ConfigurationApplicationModel.InformationSupport(),
1589
+ social_links: ConfigurationApplicationModel.SocialLinks(),
1590
+ links: Joi.array().items(ConfigurationApplicationModel.Links()),
1591
+ copyright_text: Joi.string().allow(""),
1592
+ _id: Joi.string().allow(""),
1593
+ business_highlights: Joi.array().items(
1594
+ ConfigurationApplicationModel.BusinessHighlights()
1595
+ ),
1596
+ application: Joi.string().allow(""),
1597
+ created_at: Joi.string().allow(""),
1598
+ modified_at: Joi.string().allow(""),
1599
+ __v: Joi.number(),
1634
1600
  });
1635
1601
  }
1636
1602
 
1637
- /** @returns {OwnerInfo} */
1638
- static OwnerInfo() {
1603
+ /** @returns {InformationAddress} */
1604
+ static InformationAddress() {
1639
1605
  return Joi.object({
1640
- _id: Joi.string().allow(""),
1641
- emails: Joi.array().items(ConfigurationApplicationModel.UserEmail()),
1642
- first_name: Joi.string().allow(""),
1643
- last_name: Joi.string().allow(""),
1644
- phone_numbers: Joi.array().items(
1645
- ConfigurationApplicationModel.UserPhoneNumber()
1606
+ loc: ConfigurationApplicationModel.InformationLoc(),
1607
+ address_line: Joi.array().items(Joi.string().allow("")),
1608
+ phone: Joi.array().items(
1609
+ ConfigurationApplicationModel.InformationPhone()
1646
1610
  ),
1647
- profile_pic: Joi.string().allow(""),
1611
+ city: Joi.string().allow(""),
1612
+ country: Joi.string().allow(""),
1613
+ pincode: Joi.number(),
1648
1614
  });
1649
1615
  }
1650
1616
 
1651
- /** @returns {Page} */
1652
- static Page() {
1617
+ /** @returns {InformationPhone} */
1618
+ static InformationPhone() {
1653
1619
  return Joi.object({
1654
- current: Joi.number(),
1655
- has_next: Joi.boolean(),
1656
- has_previous: Joi.boolean(),
1657
- item_total: Joi.number(),
1658
- next_id: Joi.string().allow(""),
1659
- size: Joi.number(),
1660
- type: Joi.string().allow("").required(),
1620
+ code: Joi.string().allow(""),
1621
+ number: Joi.string().allow(""),
1661
1622
  });
1662
1623
  }
1663
1624
 
1664
- /** @returns {PcrFeature} */
1665
- static PcrFeature() {
1625
+ /** @returns {InformationSupportPhone} */
1626
+ static InformationSupportPhone() {
1666
1627
  return Joi.object({
1667
- staff_selection: Joi.boolean(),
1628
+ code: Joi.string().allow(""),
1629
+ number: Joi.string().allow(""),
1630
+ key: Joi.string().allow(""),
1668
1631
  });
1669
1632
  }
1670
1633
 
1671
- /** @returns {PinterestLink} */
1672
- static PinterestLink() {
1634
+ /** @returns {InformationSupportEmail} */
1635
+ static InformationSupportEmail() {
1673
1636
  return Joi.object({
1674
- icon: Joi.string().allow(""),
1675
- link: Joi.string().allow(""),
1676
- title: Joi.string().allow(""),
1637
+ value: Joi.string().allow(""),
1638
+ key: Joi.string().allow(""),
1677
1639
  });
1678
1640
  }
1679
1641
 
1680
- /** @returns {ProductDetailFeature} */
1681
- static ProductDetailFeature() {
1642
+ /** @returns {InformationLoc} */
1643
+ static InformationLoc() {
1682
1644
  return Joi.object({
1683
- request_product: Joi.boolean(),
1684
- seller_selection: Joi.boolean(),
1685
- similar: Joi.array().items(Joi.string().allow("")),
1686
- update_product_meta: Joi.boolean(),
1645
+ type: Joi.string().allow(""),
1646
+ coordinates: Joi.array().items(Joi.number()),
1687
1647
  });
1688
1648
  }
1689
1649
 
1690
- /** @returns {QrFeature} */
1691
- static QrFeature() {
1650
+ /** @returns {InformationSupport} */
1651
+ static InformationSupport() {
1692
1652
  return Joi.object({
1693
- application: Joi.boolean(),
1694
- collections: Joi.boolean(),
1695
- products: Joi.boolean(),
1653
+ phone: Joi.array().items(
1654
+ ConfigurationApplicationModel.InformationSupportPhone()
1655
+ ),
1656
+ email: Joi.array().items(
1657
+ ConfigurationApplicationModel.InformationSupportEmail()
1658
+ ),
1659
+ timing: Joi.string().allow(""),
1696
1660
  });
1697
1661
  }
1698
1662
 
1699
- /** @returns {RegistrationPageFeature} */
1700
- static RegistrationPageFeature() {
1663
+ /** @returns {SocialLinks} */
1664
+ static SocialLinks() {
1701
1665
  return Joi.object({
1702
- ask_store_address: Joi.boolean(),
1666
+ facebook: ConfigurationApplicationModel.FacebookLink(),
1667
+ instagram: ConfigurationApplicationModel.InstagramLink(),
1668
+ twitter: ConfigurationApplicationModel.TwitterLink(),
1669
+ pinterest: ConfigurationApplicationModel.PinterestLink(),
1670
+ google_plus: ConfigurationApplicationModel.GooglePlusLink(),
1671
+ youtube: ConfigurationApplicationModel.YoutubeLink(),
1672
+ linked_in: ConfigurationApplicationModel.LinkedInLink(),
1673
+ vimeo: ConfigurationApplicationModel.VimeoLink(),
1674
+ blog_link: ConfigurationApplicationModel.BlogLink(),
1703
1675
  });
1704
1676
  }
1705
1677
 
1706
- /** @returns {RevenueEngineFeature} */
1707
- static RevenueEngineFeature() {
1678
+ /** @returns {FacebookLink} */
1679
+ static FacebookLink() {
1708
1680
  return Joi.object({
1709
- enabled: Joi.boolean(),
1681
+ title: Joi.string().allow(""),
1682
+ icon: Joi.string().allow(""),
1683
+ link: Joi.string().allow(""),
1710
1684
  });
1711
1685
  }
1712
1686
 
1713
- /** @returns {RewardPointsConfig} */
1714
- static RewardPointsConfig() {
1687
+ /** @returns {InstagramLink} */
1688
+ static InstagramLink() {
1715
1689
  return Joi.object({
1716
- credit: ConfigurationApplicationModel.Credit(),
1717
- debit: ConfigurationApplicationModel.Debit(),
1690
+ title: Joi.string().allow(""),
1691
+ icon: Joi.string().allow(""),
1692
+ link: Joi.string().allow(""),
1718
1693
  });
1719
1694
  }
1720
1695
 
1721
- /** @returns {Safetynet} */
1722
- static Safetynet() {
1696
+ /** @returns {TwitterLink} */
1697
+ static TwitterLink() {
1723
1698
  return Joi.object({
1724
- credentials: ConfigurationApplicationModel.SafetynetCredentials(),
1725
- enabled: Joi.boolean(),
1699
+ title: Joi.string().allow(""),
1700
+ icon: Joi.string().allow(""),
1701
+ link: Joi.string().allow(""),
1726
1702
  });
1727
1703
  }
1728
1704
 
1729
- /** @returns {SafetynetCredentials} */
1730
- static SafetynetCredentials() {
1705
+ /** @returns {PinterestLink} */
1706
+ static PinterestLink() {
1731
1707
  return Joi.object({
1732
- api_key: Joi.string().allow(""),
1708
+ title: Joi.string().allow(""),
1709
+ icon: Joi.string().allow(""),
1710
+ link: Joi.string().allow(""),
1733
1711
  });
1734
1712
  }
1735
1713
 
1736
- /** @returns {SecureUrl} */
1737
- static SecureUrl() {
1714
+ /** @returns {GooglePlusLink} */
1715
+ static GooglePlusLink() {
1738
1716
  return Joi.object({
1739
- secure_url: Joi.string().allow(""),
1717
+ title: Joi.string().allow(""),
1718
+ icon: Joi.string().allow(""),
1719
+ link: Joi.string().allow(""),
1740
1720
  });
1741
1721
  }
1742
1722
 
1743
- /** @returns {Segment} */
1744
- static Segment() {
1723
+ /** @returns {YoutubeLink} */
1724
+ static YoutubeLink() {
1745
1725
  return Joi.object({
1746
- credentials: ConfigurationApplicationModel.SegmentCredentials(),
1747
- enabled: Joi.boolean(),
1726
+ title: Joi.string().allow(""),
1727
+ icon: Joi.string().allow(""),
1728
+ link: Joi.string().allow(""),
1748
1729
  });
1749
1730
  }
1750
1731
 
1751
- /** @returns {SegmentCredentials} */
1752
- static SegmentCredentials() {
1732
+ /** @returns {LinkedInLink} */
1733
+ static LinkedInLink() {
1753
1734
  return Joi.object({
1754
- write_key: Joi.string().allow(""),
1735
+ title: Joi.string().allow(""),
1736
+ icon: Joi.string().allow(""),
1737
+ link: Joi.string().allow(""),
1755
1738
  });
1756
1739
  }
1757
1740
 
1758
- /** @returns {SocialLinks} */
1759
- static SocialLinks() {
1741
+ /** @returns {VimeoLink} */
1742
+ static VimeoLink() {
1760
1743
  return Joi.object({
1761
- blog_link: ConfigurationApplicationModel.BlogLink(),
1762
- facebook: ConfigurationApplicationModel.FacebookLink(),
1763
- google_plus: ConfigurationApplicationModel.GooglePlusLink(),
1764
- instagram: ConfigurationApplicationModel.InstagramLink(),
1765
- linked_in: ConfigurationApplicationModel.LinkedInLink(),
1766
- pinterest: ConfigurationApplicationModel.PinterestLink(),
1767
- twitter: ConfigurationApplicationModel.TwitterLink(),
1768
- vimeo: ConfigurationApplicationModel.VimeoLink(),
1769
- youtube: ConfigurationApplicationModel.YoutubeLink(),
1744
+ title: Joi.string().allow(""),
1745
+ icon: Joi.string().allow(""),
1746
+ link: Joi.string().allow(""),
1770
1747
  });
1771
1748
  }
1772
1749
 
1773
- /** @returns {StoreLatLong} */
1774
- static StoreLatLong() {
1750
+ /** @returns {BlogLink} */
1751
+ static BlogLink() {
1775
1752
  return Joi.object({
1776
- coordinates: Joi.array().items(Joi.number()),
1777
- type: Joi.string().allow(""),
1753
+ title: Joi.string().allow(""),
1754
+ icon: Joi.string().allow(""),
1755
+ link: Joi.string().allow(""),
1778
1756
  });
1779
1757
  }
1780
1758
 
1781
- /** @returns {SuccessMessageResponse} */
1782
- static SuccessMessageResponse() {
1759
+ /** @returns {Links} */
1760
+ static Links() {
1783
1761
  return Joi.object({
1784
- message: Joi.string().allow(""),
1762
+ title: Joi.string().allow(""),
1763
+ link: Joi.string().allow(""),
1785
1764
  });
1786
1765
  }
1787
1766
 
1788
- /** @returns {SupportedLanguage} */
1789
- static SupportedLanguage() {
1767
+ /** @returns {BusinessHighlights} */
1768
+ static BusinessHighlights() {
1790
1769
  return Joi.object({
1791
- code: Joi.string().allow(""),
1792
- name: Joi.string().allow(""),
1770
+ _id: Joi.string().allow(""),
1771
+ title: Joi.string().allow(""),
1772
+ icon: Joi.string().allow(""),
1773
+ sub_title: Joi.string().allow(""),
1793
1774
  });
1794
1775
  }
1795
1776
 
1796
- /** @returns {Tokens} */
1797
- static Tokens() {
1777
+ /** @returns {ApplicationDetail} */
1778
+ static ApplicationDetail() {
1798
1779
  return Joi.object({
1799
- firebase: ConfigurationApplicationModel.Firebase(),
1800
- freshchat: ConfigurationApplicationModel.Freshchat(),
1801
- fynd_rewards: ConfigurationApplicationModel.FyndRewards(),
1802
- google_map: ConfigurationApplicationModel.GoogleMap(),
1803
- gtm: ConfigurationApplicationModel.Gtm(),
1804
- moengage: ConfigurationApplicationModel.Moengage(),
1805
- safetynet: ConfigurationApplicationModel.Safetynet(),
1806
- segment: ConfigurationApplicationModel.Segment(),
1780
+ name: Joi.string().allow("").required(),
1781
+ description: Joi.string().allow(""),
1782
+ logo: ConfigurationApplicationModel.SecureUrl(),
1783
+ mobile_logo: ConfigurationApplicationModel.SecureUrl(),
1784
+ favicon: ConfigurationApplicationModel.SecureUrl(),
1785
+ banner: ConfigurationApplicationModel.SecureUrl(),
1786
+ domain: ConfigurationApplicationModel.Domain(),
1787
+ domains: Joi.array().items(ConfigurationApplicationModel.Domain()),
1788
+ _id: Joi.string().allow(""),
1789
+ slug: Joi.string().allow(""),
1790
+ company_id: Joi.number(),
1807
1791
  });
1808
1792
  }
1809
1793
 
1810
- /** @returns {TokenSchema} */
1811
- static TokenSchema() {
1794
+ /** @returns {CurrenciesResponse} */
1795
+ static CurrenciesResponse() {
1812
1796
  return Joi.object({
1813
- created_at: Joi.string().allow(""),
1814
- created_by: Joi.object().pattern(/\S/, Joi.any()),
1815
- token: Joi.string().allow(""),
1797
+ items: Joi.array().items(ConfigurationApplicationModel.Currency()),
1816
1798
  });
1817
1799
  }
1818
1800
 
1819
- /** @returns {TwitterLink} */
1820
- static TwitterLink() {
1801
+ /** @returns {DefaultCurrency} */
1802
+ static DefaultCurrency() {
1821
1803
  return Joi.object({
1822
- icon: Joi.string().allow(""),
1823
- link: Joi.string().allow(""),
1824
- title: Joi.string().allow(""),
1804
+ ref: Joi.string().allow(""),
1805
+ code: Joi.string().allow(""),
1825
1806
  });
1826
1807
  }
1827
1808
 
1828
- /** @returns {UnhandledError} */
1829
- static UnhandledError() {
1809
+ /** @returns {AppCurrencyResponse} */
1810
+ static AppCurrencyResponse() {
1830
1811
  return Joi.object({
1831
- message: Joi.string().allow(""),
1812
+ application: Joi.string().allow(""),
1813
+ default_currency: ConfigurationApplicationModel.DefaultCurrency(),
1814
+ supported_currency: Joi.array().items(
1815
+ ConfigurationApplicationModel.Currency()
1816
+ ),
1817
+ _id: Joi.string().allow(""),
1818
+ created_at: Joi.string().allow(""),
1819
+ modified_at: Joi.string().allow(""),
1832
1820
  });
1833
1821
  }
1834
1822
 
1835
- /** @returns {UserEmail} */
1836
- static UserEmail() {
1823
+ /** @returns {StoreLatLong} */
1824
+ static StoreLatLong() {
1837
1825
  return Joi.object({
1838
- active: Joi.boolean(),
1839
- email: Joi.string().allow(""),
1840
- primary: Joi.boolean(),
1841
- verified: Joi.boolean(),
1826
+ type: Joi.string().allow(""),
1827
+ coordinates: Joi.array().items(Joi.number()),
1842
1828
  });
1843
1829
  }
1844
1830
 
1845
- /** @returns {UserPhoneNumber} */
1846
- static UserPhoneNumber() {
1831
+ /** @returns {OptedStoreAddress} */
1832
+ static OptedStoreAddress() {
1847
1833
  return Joi.object({
1848
- active: Joi.boolean(),
1849
- country_code: Joi.number(),
1850
- phone: Joi.string().allow(""),
1851
- primary: Joi.boolean(),
1852
- verified: Joi.boolean(),
1834
+ state: Joi.string().allow(""),
1835
+ address1: Joi.string().allow(""),
1836
+ lat_long: ConfigurationApplicationModel.StoreLatLong(),
1837
+ address2: Joi.string().allow(""),
1838
+ pincode: Joi.number(),
1839
+ country: Joi.string().allow(""),
1840
+ city: Joi.string().allow(""),
1853
1841
  });
1854
1842
  }
1855
1843
 
1856
- /** @returns {VimeoLink} */
1857
- static VimeoLink() {
1844
+ /** @returns {OrderingStore} */
1845
+ static OrderingStore() {
1858
1846
  return Joi.object({
1859
- icon: Joi.string().allow(""),
1860
- link: Joi.string().allow(""),
1861
- title: Joi.string().allow(""),
1847
+ address: ConfigurationApplicationModel.OptedStoreAddress(),
1848
+ _id: Joi.string().allow(""),
1849
+ uid: Joi.number(),
1850
+ name: Joi.string().allow(""),
1851
+ display_name: Joi.string().allow(""),
1852
+ store_type: Joi.string().allow(""),
1853
+ store_code: Joi.string().allow(""),
1854
+ pincode: Joi.number(),
1855
+ code: Joi.string().allow(""),
1862
1856
  });
1863
1857
  }
1864
1858
 
1865
- /** @returns {YoutubeLink} */
1866
- static YoutubeLink() {
1859
+ /** @returns {OrderingStores} */
1860
+ static OrderingStores() {
1867
1861
  return Joi.object({
1868
- icon: Joi.string().allow(""),
1869
- link: Joi.string().allow(""),
1870
- title: Joi.string().allow(""),
1862
+ page: ConfigurationApplicationModel.Page(),
1863
+ items: Joi.array().items(ConfigurationApplicationModel.OrderingStore()),
1864
+ deployed_stores: Joi.array().items(Joi.number()),
1865
+ all_stores: Joi.boolean(),
1866
+ enabled: Joi.boolean(),
1867
+ type: Joi.string().allow(""),
1868
+ _id: Joi.string().allow(""),
1869
+ app: Joi.string().allow(""),
1870
+ __v: Joi.number(),
1871
1871
  });
1872
1872
  }
1873
1873
  }