Subversion Repositories SmartDukaan

Rev

Rev 15251 | Rev 18634 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
48 ashish 1
namespace java in.shop2020.model.v1.user
95 ashish 2
namespace py shop2020.thriftpy.model.v1.user
48 ashish 3
 
3374 rajveer 4
include "GenericService.thrift"
5
 
48 ashish 6
/**
7
Exceptions
8
*/
9
exception AuthenticationException{
10
	1:string message,
11
	2:i32 errorCode
12
}
13
 
14
exception UserContextException{
15
	1:i32 errorCode,
16
	2:string message
17
}
18
 
552 chandransh 19
exception ShoppingCartException{
20
	1:i64 id,
21
	2:string message
22
}
23
 
1116 varun.gupt 24
exception UserCommunicationException{
25
	1:i64 id,
26
	2:string message
27
}
28
 
1995 vikas 29
exception UserAffiliateException{
1848 vikas 30
    1:i64 id,
31
    2:string message
32
}
33
 
1599 ankur.sing 34
enum UserType{
35
	USER = 0,
36
	ANONYMOUS = 1 
37
}
38
 
6367 amit.gupta 39
enum PromotionType{
40
	DISCOUNT_COUPON = 0,
41
	GIFT_VOUCHER = 1 
42
}
43
 
121 ashish 44
enum AddressType{
130 ashish 45
	WORK = 0,
46
	HOME = 1
48 ashish 47
}
48
 
8707 manish.sha 49
/** Added by Manish Sharma
50
*/
51
enum CouponCategory{
52
	CUSTOMER_SATISFACTION = 0,
53
	MARKETING = 1,
11653 amit.gupta 54
	REFUND = 2,
55
	CATEGORY = 3
8707 manish.sha 56
}
130 ashish 57
 
48 ashish 58
/**
1116 varun.gupt 59
Form types for Contact Us form
60
*/
61
enum UserCommunicationType{
62
	RETURN_FORM = 1,
63
	ORDER_CANCELLATION = 2,
64
	DELIVERY_PROBLEM = 3,
65
	PAYMENT_STATUS = 4,
66
	ORDER_STATUS = 5,
67
	PRODUCT_REQUEST = 6,
6176 amit.gupta 68
	RECHARGE_RELATED = 7,
11890 kshitij.so 69
	OTHER = 8,
70
	Bulk_Order_ENQUIRY = 21
6176 amit.gupta 71
 
1116 varun.gupt 72
}
73
 
74
/**
3379 vikas 75
Affiliate track log types for affiliate tracking
76
*/
77
enum TrackLogType{
78
    NEW_REGISTRATION = 1,
79
    PAYMENT_SUCCESS = 2
80
}
81
 
82
/**
121 ashish 83
Address
84
*/
85
struct Address{
552 chandransh 86
	1:i64 id,
87
	2:string line1,
88
	3:string line2,
89
	4:string landmark,
90
	5:string city,
91
	6:string state,
92
	7:string pin,
93
	8:string country,
48 ashish 94
	9:bool enabled,
123 ashish 95
	10:AddressType type,
414 ashish 96
	11:i64 addedOn,
97
	12:string name,
98
	13:string phone
48 ashish 99
}
100
 
552 chandransh 101
enum Sex{
102
	MALE,
103
	FEMALE,
104
	WONT_SAY
105
}
106
 
121 ashish 107
/**
552 chandransh 108
The user structure holding the basic information that identifies the user.
121 ashish 109
**/
552 chandransh 110
struct User{
111
	1:i64 userId,
112
	2:string email,
113
	3:string password,
114
	4:string name,
566 rajveer 115
	5:string dateOfBirth,
1116 varun.gupt 116
	6:Sex sex,
3853 mandeep.dh 117
	7:optional string mobileNumber,
5326 rajveer 118
	8:i64 lastLogin,
119
	9:i64 lastLogout,
120
	10:i64 activeSince,
121
	11:list<Address> addresses,
122
	12:i64 defaultAddressId,
123
	13:string communicationEmail,
124
	14:i64 activeCartId,
125
	15:string jsessionId,
126
	16:bool isAnonymous,
127
	17:string source,
128
	18:i64 sourceStartTime,
7825 amar.kumar 129
	19:double trustLevel,
130
	20:bool isFacebookUser,
131
	21:string facebookAccessToken,
8201 rajveer 132
	22:string facebookId,
133
	23:i64 sourceId
48 ashish 134
}
135
 
1116 varun.gupt 136
struct UserCommunication{
137
	1:i64 id,
138
	2:i64 userId,
139
	3:UserCommunicationType communicationType,
140
	4:i64 orderId,
141
	5:string airwaybillNo,
142
	6:string replyTo,
143
	7:string productName,
144
	8:string subject,
145
	9:string message,
1299 varun.gupt 146
	10:i64 communication_timestamp
1116 varun.gupt 147
}
148
 
1848 vikas 149
struct MasterAffiliate{
150
    1:i64 id,
151
    2:string name,
1861 vikas 152
    3:i64 addedOn
1848 vikas 153
}
154
 
155
struct Affiliate{
156
    1:i64 id,
157
    2:string name,
158
    3:string url,
1861 vikas 159
    4:i64 masterAffiliateId,
160
    5:i64 addedOn
1848 vikas 161
}
162
 
163
struct Tracker{
164
    1:i64 id,
1861 vikas 165
    2:i64 affiliateId,
1848 vikas 166
}
167
 
168
struct TrackLog{
169
    1:i64 id,
1861 vikas 170
    2:i64 addedOn,
1995 vikas 171
    3:i64 affiliateId,
1861 vikas 172
    4:i64 userId,
3379 vikas 173
    5:TrackLogType eventType,
1861 vikas 174
    6:string url,
175
    7:string data
1848 vikas 176
}
177
 
17782 amit.gupta 178
struct ItemQuantity {
179
	1:i64 itemId,
180
	2:i64 qty,
181
}
182
 
183
 
552 chandransh 184
//Various statuses for line items
185
enum LineStatus{
186
	LINE_ACTIVE,			//line is active
187
	LINE_DELETED,			//line is deleted
188
	LINE_EXPIRED,			//line is expired, on laspse of fixed amount of time
189
	LINE_COMMITED,			//line is committed, sent for processing.
190
	LINE_COMMIT_FAILED,		//line was committed, but commit failed due to some reason, possibly during cart validation.
191
	LINE_AUTO_DELETED,		//line was auto deleted internally due to some reason(item delisted, price changed etc).
192
}
193
 
194
//Various statuses for Cart
195
enum CartStatus{
196
	ACTIVE,					
197
	INACTIVE,
198
	EXPIRED,
199
	COMMITTED,
200
	COMMIT_FAILED
201
}
202
 
3554 varun.gupt 203
struct Discount{
204
	1:i64 cart_id,
205
    2:i64 item_id,
206
    3:double discount,
207
    4:double quantity
208
}
209
 
552 chandransh 210
struct Line{
646 chandransh 211
	1:i64 cartId,				//identifier
552 chandransh 212
	2:i64 itemId,			//item id added
213
	3:double quantity,		//quantity added 
214
	4:i64 createdOn,		//addition timestamp
215
	5:i64 updatedOn, 		//any updation in quantity or status
216
	6:LineStatus lineStatus,	//current status
1984 varun.gupt 217
	7:i32 estimate,			//delivery estimate in hours
218
	8:double actualPrice,
3554 varun.gupt 219
	9:double discountedPrice,
6903 anupam.sin 220
	10:list<Discount> discounts,
221
	11:i64 insurer,
9299 kshitij.so 222
	12:double insuranceAmount,
223
	13:i64 dataProtectionInsurer,
11653 amit.gupta 224
	14:double dataProtectionAmount,
225
	15:string dealText,
11738 amit.gupta 226
	16:i64 freebieId
552 chandransh 227
}
228
 
229
struct Cart{
230
	1:i64 id,				//identifier
231
	2:list<Line> lines,		//list of lines
232
	3:CartStatus status,	//current status
233
	4:i64 createdOn,		//creation timestamp
234
	5:i64 updatedOn,		//time of last update in cart (like addition/deletion/updation of cart items )
687 chandransh 235
	6:i64 checkedOutOn,		//commited timestamp
5326 rajveer 236
	7:i64 addressId,	    //address on which this will be shipped
237
	8:double totalPrice,
238
	9:double discountedPrice,
5553 rajveer 239
	10:string couponCode,
6736 amit.gupta 240
	11:i64 pickupStoreId,
241
	12:string message		//This is introduced to display custom message as and when required to the Website for user display.
552 chandransh 242
}
243
 
11592 amit.gupta 244
struct CartPlus {
245
	1:Cart cart,
246
	2:string 	pinCode,
247
	3:bool needInsuranceInfo,
248
	4:list<string> validateCartMessages
249
}
250
 
552 chandransh 251
enum WidgetType{
770 rajveer 252
	MY_RESEARCH,
253
	BROWSE_HISTORY
254
}
255
 
2981 rajveer 256
struct UserWidgetItem{
257
	1:i64 userId,
258
	2:i64 widgetId,
259
	3:i64 itemId,
260
	4:i64 addedOn
552 chandransh 261
}
262
 
263
exception WidgetException{
264
	1:i64 id,
265
	2:string message
266
}
267
 
48 ashish 268
/**
1984 varun.gupt 269
Exceptions for Promotion Service
270
*/
12696 amit.gupta 271
 
1984 varun.gupt 272
exception PromotionException{
273
	1:i64 id,
274
	2:string message
275
}
276
 
277
/**
278
Types for Promotion Service
279
*/
280
 
281
struct Promotion{
282
	1:i64 id,
283
	2:string name,
284
	3:string ruleExecutionSrc,
285
	4:i64 startOn,
286
	5:i64 endOn,
287
	6:i64 createdOn
288
}
289
 
12696 amit.gupta 290
 
291
struct Counter {
292
	1:i64 id,
293
	2:string code,
294
	3:string name,
295
	4:string ownerName,
296
	5:string email,
297
	6:string mobile,
298
	7:string alternateMobile,
299
	8:bool striker,
300
	9:string tin,
301
	10:i64 spCounterSize,
302
	11:i64 fpCounterSize,
12722 amit.gupta 303
	12:string dob,
12696 amit.gupta 304
	13:i64 addedOn,
305
	14:i64 address
306
}
307
 
1984 varun.gupt 308
struct Coupon{
12696 amit.gupta 309
	1:string couponCode, 
3554 varun.gupt 310
	2:Promotion promotion,
8707 manish.sha 311
	3:string arguments,
312
	4:CouponCategory coupon_category
1984 varun.gupt 313
}
314
 
315
struct PromotionTracking{
316
	1:string couponCode,
317
	2:i64 transactionId,
318
	3:i64 userId,
319
	4:bool appliedOn
320
}
321
 
4189 varun.gupt 322
struct ItemCouponDiscount{
323
	1:i64 itemId,
324
	2:string couponCode,
325
	3:double discount
326
}
327
 
5469 rajveer 328
enum VoucherType{
5492 rajveer 329
	SPICEDECK_MOBILE=1
5469 rajveer 330
}
331
 
332
struct Voucher{
333
	1:i64 id,
334
	2:string voucherCode,
335
	3:VoucherType voucherType,
336
	4:i64 issuedOn,
337
	5:double amount,
338
	6:i64 expiredOn,
339
	7:string userEmail
340
}
341
 
11890 kshitij.so 342
struct PrivateDealUser{
343
	1:i64 userId,
344
	2:i64 addedOn,
12696 amit.gupta 345
	3:bool isActive,
346
	4:i64 counterId,
13146 manish.sha 347
	5:string tin,
348
	6:double bulkShipmentAmountLimit
11890 kshitij.so 349
}
5469 rajveer 350
 
15251 manish.sha 351
struct AccessTokenizer{
352
	1:i64 id,
353
	2:i64 userId,
354
	3:string source,
355
	4:string tokenString,
356
	5:i64 expiredTime,
357
	6:bool expired
358
}
11890 kshitij.so 359
 
15251 manish.sha 360
 
1984 varun.gupt 361
/**
362
Promotion Service
363
*/
3374 rajveer 364
service PromotionService extends GenericService.GenericService{
1984 varun.gupt 365
	void createPromotion(1:string name, 2:string ruleExecutionSrc, 3:i64 startOn, 4:i64 endOn) throws (1:PromotionException pex),
7746 amit.gupta 366
	i64 removeAllCouponsByPromotionId(1:i64 promotionId) throws (1:PromotionException pex),
6301 amit.gupta 367
	Coupon getCoupon(1:string couponCode) throws (1:PromotionException pex),
368
	bool isGiftVoucher(1:string couponCode) throws (1:PromotionException pex),
11819 amit.gupta 369
	bool isCodApplicable(1:Cart cart) throws (1:PromotionException pex),
1984 varun.gupt 370
	list<Promotion> getAllPromotions() throws (1:PromotionException pex),
371
	Promotion getPromotionById(1:i64 promotionId) throws (1:PromotionException pex),
372
	void generateCouponsForPromotion(1:i64 promotionId, 2:string couponCode) throws (1:PromotionException pex),
373
	Cart applyCoupon(1:string couponCode, 2:i64 cartId) throws (1:PromotionException pex),
6736 amit.gupta 374
	map<i64,double>  getEmiDiscount(1:i64 cartId) throws (1:PromotionException pex),
6433 anupam.sin 375
	map<i64, string> applyRechargeCoupon(1:string couponCode, 2:i64 totalAmount, 3:i64 userId) throws (1:PromotionException pex),
13521 amit.gupta 376
    void trackCouponUsage(1:string couponCode, 2:i64 transactionId, 3:i64 userId, 4:i64 amount, 5:bool isDigital) throws (1:PromotionException pex),
3385 varun.gupt 377
    i64 getCouponUsageCountByUser(1:string couponCode, 2:i64 userId) throws (1:PromotionException pex),
6497 amit.gupta 378
    list<Coupon> getActiveCodes(1:i64 promotionId) throws (1:PromotionException pex),
379
    void deleteCoupon(1:string couponCode) throws (1:PromotionException pex),
7092 amit.gupta 380
    list<Coupon> getAllCouponsByPromotionId(1:i64 promotionId) throws (1:PromotionException pex),
3385 varun.gupt 381
 
382
    /**
383
     Returns a list of active coupons
384
     */
385
    list<Coupon> getActiveCoupons() throws (1:PromotionException pex),
386
 
387
    /**
6561 amit.gupta 388
     Creates a coupon with prefix (optional, pass null)and returns couponcode if successfully created.
6250 amit.gupta 389
     */
8707 manish.sha 390
    string createCoupon(1:i64 promotionId,2:i64 couponCategory, 3:string couponCode, 4:string arguments 5:bool isCod, 6:string prefix) throws (1:PromotionException pex),
6250 amit.gupta 391
 
392
    /**
3385 varun.gupt 393
     Returns the count of successful payments done using a given coupon
394
     */
395
    i64 getSuccessfulPaymentCountForCoupon(1:string couponCode) throws (1:PromotionException pex),
396
 
397
    /**
398
     Returns the doc string of the rule module
399
     */
4189 varun.gupt 400
    string getRuleDocString(1:string ruleName),
401
 
4494 varun.gupt 402
    list<ItemCouponDiscount> getItemDiscountMap(1:list<i64> itemIds) throws (1:PromotionException pex),
403
 
5469 rajveer 404
    map<string, double> getDiscountsForEntity(1:i64 entityId),
405
 
406
    void addVoucher(1:Voucher voucher),
407
    Voucher assignVoucher(1:i64 userId, 2:string userEmail, 3:VoucherType voucherType, 4:i64 amount),
408
    bool markVoucherAsRedeemed(1:string voucherCode, 2:i64 redeemedOn)
1984 varun.gupt 409
}
410
 
411
/**
48 ashish 412
service
413
*/
3374 rajveer 414
service UserContextService extends GenericService.GenericService{
763 rajveer 415
 
552 chandransh 416
	User createAnonymousUser(1:string jsessionId) throws (1:UserContextException ucex),
417
	User getUserById(1:i64 userId) throws (1:UserContextException ucex),
5326 rajveer 418
	User getUserByCartId(1:i64 cartId) throws (1:UserContextException ucex),
1491 vikas 419
	User getUserByEmail(1:string email) throws (1:UserContextException ucex),
3026 mandeep.dh 420
    User getUserByMobileNumber(1:i64 mobileNumber) throws (1:UserContextException ucex),
552 chandransh 421
	User createUser(1:User user) throws (1:UserContextException ucex),
422
	User updateUser(1:User user) throws (1:UserContextException ucex),
423
	User authenticateUser(1:string email, 2:string password) throws (1:AuthenticationException auex),
424
	bool userExists(1:string email) throws (1:UserContextException ucx),
566 rajveer 425
	i64 addAddressForUser(1:i64 userId, 2:Address address, 3:bool setDefault)throws (1:UserContextException ucx),
48 ashish 426
	bool removeAddressForUser(1:i64 userid, 2:i64 addressId)throws (1:UserContextException ucx),
427
	bool setUserAsLoggedIn(1:i64 userId, 2:i64 timestamp)throws (1:UserContextException ucx),
428
	bool setUserAsLoggedOut(1:i64 userid, 2:i64 timestamp)throws (1:UserContextException ucx),
506 rajveer 429
	bool setDefaultAddress(1:i64 userid, 2:i64 addressId)throws (1:UserContextException ucx),
592 rajveer 430
	bool updatePassword(1:i64 userid, 2:string oldPassword, 3:string newPassword)throws (1:UserContextException ucx),
895 rajveer 431
	bool forgotPassword(1:string email, 2:string newPassword)throws (1:UserContextException ucx),
592 rajveer 432
	list<Address> getAllAddressesForUser(1:i64 userId)throws (1:UserContextException ucx),
1892 vikas 433
	Address getAddressById(1:i64 addressId)throws (1:UserContextException ucx),
592 rajveer 434
	i64 getDefaultAddressId(1:i64 userId)throws (1:UserContextException ucx),
783 rajveer 435
	string getDefaultPincode(1:i64 userId)throws (1:UserContextException ucx),
552 chandransh 436
 
1167 varun.gupt 437
	bool saveUserCommunication(1:i64 userId, 2:string replyTo, 3:i64 communicationType, 4:i64 orderId, 5:string airwaybillNo, 6:string productName, 7:string subject, 8:string message)throws (1:UserCommunicationException ucx)
1590 varun.gupt 438
	UserCommunication getUserCommunicationById(1:i64 id) throws (1:UserCommunicationException ucx)
439
	list<UserCommunication> getUserCommunicationByUser(1:i64 userId) throws (1:UserCommunicationException ucx)
440
	list<UserCommunication> getAllUserCommunications() throws (1:UserCommunicationException ucx)
5407 amar.kumar 441
	void removeUserCommunication(1:i64 id) throws (1:UserCommunicationException ucx)
1116 varun.gupt 442
 
1995 vikas 443
	MasterAffiliate createMasterAffiliate(1:string name, 2:i64 addedOn) throws (1:UserAffiliateException utx)
444
	list<MasterAffiliate> getAllMasterAffiliates() throws (1:UserAffiliateException utx)
445
	MasterAffiliate getMasterAffiliateById(1:i64 id) throws (1:UserAffiliateException utx)
446
    MasterAffiliate getMasterAffiliateByName(1:string name) throws (1:UserAffiliateException utx)
447
	Affiliate createAffiliate(1:string name, 2:string url, 3:i64 masterAffiliateId, 4:i64 addedOn) throws (1:UserAffiliateException utx)
448
	Affiliate getAffiliateById(1:i64 id) throws (1:UserAffiliateException utx)
449
	Affiliate getAffiliateByName(1:string name) throws (1:UserAffiliateException utx)
450
	Tracker getTrackerById(1:i64 id) throws (1:UserAffiliateException utx)
451
	list<Affiliate> getAffiliatesByMasterAffiliate(1:i64 id) throws (1:UserAffiliateException utx)
3379 vikas 452
	i64 addTrackLog(1:i64 affiliateId, 2:i64 userId, 3:TrackLogType event, 4:string url, 5:string data, 6:i64 addedOn) throws (1:UserAffiliateException utx)
1995 vikas 453
	TrackLog getTrackLogById(1:i64 id) throws (1:UserAffiliateException utx)
3293 vikas 454
	list<TrackLog> getTrackLogsByAffiliate(1:i64 affiliateId, 2:i64 startDate, 3:i64 endDate) throws (1:UserAffiliateException utx)
1995 vikas 455
	list<TrackLog> getTrackLogsByUser(1:i64 userId) throws (1:UserAffiliateException utx)
456
	list<TrackLog> getTrackLogs(1:i64 userId, 2:string event, 3:string url) throws (1:UserAffiliateException utx)
1848 vikas 457
 
552 chandransh 458
	Cart getCurrentCart(1:i64 userId) throws (1:ShoppingCartException scx),	
459
	Cart getCart(1:i64 cartId) throws (1:ShoppingCartException scx),
460
	list<Cart> getCartsByTime(1:i64 from_time, 2:i64 to_time, 3:CartStatus status) throws (1:ShoppingCartException scx),
3556 rajveer 461
	string addItemToCart(1:i64 cartId, 2:i64 itemId, 3:i64 quantity, 4:i64 sourceId) throws (1:ShoppingCartException scx),
552 chandransh 462
	void deleteItemFromCart(1:i64 cartId, 2:i64 itemId) throws (1:ShoppingCartException scx),
577 chandransh 463
	void addAddressToCart(1:i64 cartId, 2:i64 addressId) throws (1:ShoppingCartException scx),
5553 rajveer 464
	void addStoreToCart(1:i64 cartId, 2:i64 storeId) throws (1:ShoppingCartException scx),
6922 anupam.sin 465
	void applyCouponToCart(1:Cart cart, 2:string couponCode) throws (1:ShoppingCartException scx),
1984 varun.gupt 466
	void removeCoupon(1:i64 cartId) throws (1:ShoppingCartException scx),
687 chandransh 467
 
468
	/**
3554 varun.gupt 469
	Deletes all the discounts associated with the cart
470
	*/
471
	void deleteDiscountsFromCart(1:i64 cartId) throws (1:ShoppingCartException scx),
472
 
473
	/**
474
	Accepts a list of thrift objects of Discount type and saves them
475
	*/
476
	void saveDiscounts(1:list<Discount> discounts) throws (1:ShoppingCartException scx),
477
 
478
	/**
687 chandransh 479
	 Creates a transaction and multiple orders for the given cart. Returns the transaction ID created.
480
	*/
11526 amit.gupta 481
	i64 createOrders(1:i64 cartId, 2:string sessionSource, 3:i64 sessionStartTime, 4:string firstSource, 5:i64 firstSourceTime, 6:i64 userId, 7:i64 schemeId, 8:i64 orderSource) throws (1:ShoppingCartException scx),
687 chandransh 482
 
483
	/**
484
	 Validates that:
485
	 1. The checkout timestamp is greater than the updatedOn timestamp.
1466 ankur.sing 486
	 2. All of the lines in the cart are active items.
687 chandransh 487
	 3. The estimate for any of the lines in cart doesn't change.
1466 ankur.sing 488
	 If all three are true, returns empty string; else returns appropriate message.
687 chandransh 489
	*/
6736 amit.gupta 490
	list<string> validateCart(1:i64 cartId, 2:i64 sourceId) throws (1:ShoppingCartException scex),
11980 amit.gupta 491
 
492
	/**
493
	 Validates that:
494
	 1. The checkout timestamp is greater than the updatedOn timestamp.
495
	 2. All of the lines in the cart are active items.
496
	 3. The estimate for any of the lines in cart doesn't change.
497
	 If all three are true, returns empty string; else returns appropriate message.
498
	*/
499
	list<string> validateCartWithDealerCoupon(1:i64 cartId, 2:i64 sourceId, 3:string dealCoupon) throws (1:ShoppingCartException scex),
552 chandransh 500
 
687 chandransh 501
	/**
502
	 Merges the lines from the first cart into the second cart. Lines with duplicate items are removed.
503
	*/
504
	void mergeCart(1:i64 fromCartId, 2:i64 toCartId),
505
 
506
	/**
507
	 Sets the checkedOutOn timestamp of the cart. Raises an exception if the specified cart can't be found.
508
	*/
509
	bool checkOut(1:i64 cartId) throws (1:ShoppingCartException scex),
510
 
511
	/**
512
	 The second parameter is a map of item ids and their quantities which have been successfully processed.
513
	 This methods removes the specified quantiry of the specified item from the cart.
770 rajveer 514
	 */
515
	bool resetCart(1:i64 cartId, 2:map<i64, double> items) throws (1:ShoppingCartException scex),
516
 
687 chandransh 517
 
1599 ankur.sing 518
	/**
519
	Returns number of registered users.
520
	If userType = null, then it returns count of all users, including anonymous
521
	If userType = UserType.ANONYMOUS, then it returns count of anonymous users only
522
	If userType = UserType.USER, then it returns count of non-anonymous users only
523
	*/
1672 ankur.sing 524
	i64 getUserCount(1:UserType userType),
1599 ankur.sing 525
 
1672 ankur.sing 526
	/**
1891 ankur.sing 527
	Returns list of users of type userType who registered between startDate and endDate (both inclusive).
528
	If any of startDate or endDate is -1, then that filter is ignored. 
529
	If userType is null, then returns all the users, irrespective of anonymous flag
530
 
1672 ankur.sing 531
	*/
2642 varun.gupt 532
	list<User> getAllUsers(1:UserType userType, 2:i64 startDate, 3:i64 endDate),
2717 varun.gupt 533
 
1599 ankur.sing 534
 
2981 rajveer 535
 
536
	/**
537
	Returns list of item ids in myresearch for the user
538
	*/
539
	list<i64> getMyResearchItems(1:i64 userId) throws (1:WidgetException scx),
540
	/**
541
	add item to my research for a user
542
	*/
543
	bool updateMyResearch(1:i64 userId, 2:i64 itemId) throws (1:WidgetException scx),
544
	/**
545
	delete item from my research for a user
546
	*/
547
	void deleteItemFromMyResearch(1:i64 userId, 2:i64 itemId) throws (1:WidgetException scx),
548
	/**
549
	Returns list of item ids in browse history for the user. It will return maximum 10 items.
550
	*/
551
	list<i64> getBrowseHistoryItems(1:i64 userId) throws (1:WidgetException scx),
552
	/**
553
	add item to browse history for a user
554
	*/
3385 varun.gupt 555
	void updateBrowseHistory(1:i64 userId, 2:i64 itemId),
556
 
557
	/**
558
	Returns count of Carts with given coupon applied
559
	*/
3499 mandeep.dh 560
	i64 getCartsWithCouponCount(1:string couponCode),
561
 
562
	/**
563
	 * Updates COD trust level of a user
564
	 */
4668 varun.gupt 565
	oneway void increaseTrustLevel(1:i64 userId, 2:double trustLevelDelta),
5407 amar.kumar 566
 
567
	/**
568
	 * Get trust level of a user
569
	 */	
570
	double getTrustLevel(1:i64 userId),
4668 varun.gupt 571
 
572
	/**
573
	 * Returns true/false depending on wether COD is allowed for a cart or not
574
	 */
6903 anupam.sin 575
	bool showCODOption(1:i64 cartId, 2:i64 sourceId, 3:string pincode),
5623 anupam.sin 576
 
577
	/**
578
	 * Get email addresses for users activated within a given date range
579
	 */
6903 anupam.sin 580
	list<string> getUserEmails(1:i64 startDate, 2:i64 endDate),
6821 amar.kumar 581
 
582
	/**
6903 anupam.sin 583
	 * Mark a cart lineitem as insured. Returns true/false. 
584
	 */
9299 kshitij.so 585
	 bool insureItem(1:i64 itemId, 2:i64 cartId, 3:bool toInsure, 4:i32 insurerType),
6903 anupam.sin 586
 
587
	 /**
588
	 * Cancel insurance for all items in the cart
589
	 */
590
	 bool cancelInsurance(1:i64 cartId),
591
 
592
	 /**
593
	 * Stores insurance specific details like date of birth and guardianName
594
	 */
595
	 bool storeInsuranceSpecificDetails(1:i64 addressId, 2:string dob, 3:string guardianName),
596
 
597
	 /**
598
	 * Return true or false based on whether the user has stored any insurance info corresponding to the given addressId
599
	 */
600
	 bool isInsuranceDetailPresent(1:i64 addressId)
601
 
602
	/**
9791 rajveer 603
	 * Returns list of item ids which added to cart from startDate to endDate 
6821 amar.kumar 604
	 */
9791 rajveer 605
	list<i64> getProductsAddedToCart(1:i64 startDate, 2:i64 endDate)
11592 amit.gupta 606
 
607
	/**
608
	* This method is speciically used to avoid overloadaed calls to userClient
609
	*/
11980 amit.gupta 610
	CartPlus validateCartPlus(1:i64 cartId, 2:i64 sourceId, 3:string dealerCoupon) throws (1:ShoppingCartException scex)
11592 amit.gupta 611
 
11679 vikram.rag 612
	bool isPrivateDealUser(1:i64 userId)
11592 amit.gupta 613
 
11890 kshitij.so 614
	bool addPrivateDealUser(1:i64 userId)
11592 amit.gupta 615
 
11890 kshitij.so 616
	bool changePrivateDealUserStatus(1:i64 userId,2:bool isActive)
617
 
618
	PrivateDealUser getPrivateDealUser(1:i64 userId)
11679 vikram.rag 619
 
12722 amit.gupta 620
	map<string,string> registerCounter(1:Counter counter, 2:i64 userId)
11890 kshitij.so 621
 
12722 amit.gupta 622
	list<Counter> searchCounter(1:string type1,  2:string searchString)
11890 kshitij.so 623
 
12722 amit.gupta 624
	list<User> getAllUsersByCounter(1:i64 counterId)
11890 kshitij.so 625
 
15251 manish.sha 626
	string getActiveAccessTokenForUser(1:i64 userId, 2:string source)
627
 
628
	bool validateAccessToken(1:string accessToken)
17782 amit.gupta 629
	bool addItemsToCart(1:i64 cartId, 2:list<ItemQuantity> itemQty, 3:string couponCode)
630
	string validateCartNew(1:i64 cartId, 2:string pinCode, 3:i64 sourceId)
15251 manish.sha 631
 
2642 varun.gupt 632
}