Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
412 ashish 1
namespace java in.shop2020.logistics
2
namespace py shop2020.thriftpy.logistics
3
 
3374 rajveer 4
include "GenericService.thrift"
5
 
646 chandransh 6
enum StationType{
7
	OWN_STATION = 0,		//The service provider's own station.
8
	ASSOCIATE_STATION = 1	//An associate's station
472 rajveer 9
}
442 rajveer 10
 
3044 chandransh 11
enum DeliveryType {
12
	PREPAID = 0,
13
	COD = 1
14
}
15
 
5527 anupam.sin 16
enum PickUpType {
17
	COURIER = 0,
18
	RUNNER = 1,
19
	SELF = 2
20
}
21
 
3044 chandransh 22
struct ProviderDetails{
23
	1:string accountNo,
24
	2:string email
7792 anupam.sin 25
	3:i64 logisticLocation
26
	4:DeliveryType deliveryType
3044 chandransh 27
}
28
 
9840 amit.gupta 29
/* Text to be displayed as product page*/
30
struct ItemText{
31
	1:i64 itemId,
32
	2:string displayText
33
}
34
 
412 ashish 35
struct Provider{
36
	1:i64 id,
667 chandransh 37
	2:string name,
7792 anupam.sin 38
	3:list<ProviderDetails> details,
5527 anupam.sin 39
	4:PickUpType pickup
412 ashish 40
}
41
 
646 chandransh 42
struct AwbUpdate{
43
    1:string awbNumber,
6643 rajveer 44
    2:i64 providerId,
45
    3:i64 date,
46
    4:string status,
47
    5:string description,
48
    6:string location
412 ashish 49
}
50
 
5110 mandeep.dh 51
struct LogisticsInfo {
646 chandransh 52
	1:i64 warehouseId,
53
	2:i64 providerId,
54
	3:i64 deliveryTime,
4009 chandransh 55
	4:string airway_billno,
4865 rajveer 56
	5:i64 shippingTime,
5110 mandeep.dh 57
	6:bool codAllowed,
6524 rajveer 58
	7:i64 fulfilmentWarehouseId,
6725 rajveer 59
	8:bool otgAvailable,
60
	9:i64 deliveryDelay
483 rajveer 61
}
62
 
5553 rajveer 63
struct PickupStore {
5719 rajveer 64
	1:i64 id,
65
	2:string hotspotId,	
66
	3:string name,
67
    4:string line1,
68
    5:string line2,
69
    6:string city,
70
    7:string state,
71
    8:string pin,
5739 rajveer 72
    9:string phone,
5863 rajveer 73
    10:string email,
74
    11:string zone,
75
    12:string bdm,
76
    13:string bdmEmail
5553 rajveer 77
}
7785 manish.sha 78
 
79
struct LogisticsLocationInfo {
80
	1:i64 providerId,
81
	2:string pinCode,
82
	3:string destinationCode,
83
	4:bool expAvailable,
84
	5:bool codAvailable,
85
	6:bool otgAvailable,
86
	7:i64 codLimit,
87
	8:i64 prepaidLimit,
88
	9:i64 warehouseId,
89
	10:i64 deliveryTime,
90
	11:i64 delivery_delay
91
}
5553 rajveer 92
 
472 rajveer 93
exception LogisticsServiceException{
94
	1:i64 id,
95
	2:string message
96
}
97
 
3374 rajveer 98
service LogisticsService extends GenericService.GenericService{
646 chandransh 99
	/**
667 chandransh 100
	 Returns a provider for a given provider ID. Throws an exception if none found.
101
	*/
102
	Provider getProvider(1:i64 providerId) throws (1:LogisticsServiceException lse),
103
 
104
	/**
673 chandransh 105
	 Returns a list containing all the providers.
106
	*/
107
	list<Provider> getAllProviders() throws (1:LogisticsServiceException lse),
108
 
109
	/**
646 chandransh 110
	 Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
111
	 Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
4630 mandeep.dh 112
	 is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
646 chandransh 113
	 */
4630 mandeep.dh 114
	LogisticsInfo getLogisticsEstimation(1:i64 itemId, 2:string destination_pin, 3:DeliveryType type) throws (1:LogisticsServiceException se),
483 rajveer 115
 
7256 rajveer 116
	LogisticsInfo getLogisticsEstimationForStore(1:i64 itemId, 2:string destination_pin, 3:DeliveryType type) throws (1:LogisticsServiceException se),
117
 
646 chandransh 118
	/**
119
	 Same as above excpet that an airway bill number is also allocated and returned.
120
	*/
5766 rajveer 121
	LogisticsInfo getLogisticsInfo(1:string destination_pincode, 2:i64 item_id, 3:DeliveryType type, 4:PickUpType pickUp) throws (1:LogisticsServiceException se),
477 rajveer 122
 
646 chandransh 123
	/**
124
	 Returns an unused AWB number for the given provider.
125
	*/
5247 rajveer 126
	string getEmptyAWB(1:i64 providerId, DeliveryType type) throws (1:LogisticsServiceException se),
472 rajveer 127
 
646 chandransh 128
	/**
129
	 Returns the list of updates for the given AWB number and provider id. The list is empty if there are no updates yet.
130
	*/
6643 rajveer 131
	list<AwbUpdate> getShipmentInfo(1:string awbNumber, 2:i64 providerId) throws (1:LogisticsServiceException se),
729 chandransh 132
 
133
	/**
6643 rajveer 134
	 Store the update for the given AWB number and provider id.
135
	*/
136
	void storeShipmentInfo(1:AwbUpdate update) throws (1:LogisticsServiceException se),
137
 
138
 
139
	/**
729 chandransh 140
	 Returns the short three letter code of a pincode for the given provider.
141
     Raises an exception if the pin code is not serviced by the given provider.
142
	*/
1138 chandransh 143
	string getDestinationCode(1:i64 providerId, 2:string pinCode) throws (1:LogisticsServiceException se),
144
 
145
	/**
3103 chandransh 146
	Returns the number of unused AWB numbers for the given provider of the given type  
1138 chandransh 147
	*/
3103 chandransh 148
	i64 getFreeAwbCount(1:i64 providerId, 2:string type),
1730 ankur.sing 149
 
150
	/**
151
	Returns list of Holiday dates between fromDate and toDate (both inclusive)
152
	fromDate should be passed as milliseconds corresponding to the start of the day.
153
	If fromDate is passed as -1, fromDate is not considered for filtering
154
	If toDate is passed as -1, toDate is not considered for filtering
155
	*/
4934 amit.gupta 156
	list<i64> getHolidays(1:i64 fromDate, 2:i64 toDate),
157
 
158
	/**
159
	 Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
160
	 Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
161
	 is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
162
	 */
9840 amit.gupta 163
	list<ItemText> getEntityLogisticsEstimation(1:i64 catalogItemId, 2:string destination_pin, 3:DeliveryType type) throws (1:LogisticsServiceException se)
5527 anupam.sin 164
 
165
	/**
166
	* Returns the id for a given pickUpType
167
	*/
5553 rajveer 168
	i64 getProviderForPickupType(1:i64 pickUp),
169
 
170
 
171
	list<PickupStore> getAllPickupStores(),
172
 
5719 rajveer 173
	PickupStore getPickupStore(1:i64 storeId),
174
 
6322 amar.kumar 175
	PickupStore getPickupStoreByHotspotId(1:string hotspotId),
176
 
7567 rajveer 177
	void addPincode(1:i64 providerId, 2:string pincode, 3:string destCode, 4:bool exp, 5:bool cod, 6:i32 stationType, 7:bool otgAvailable),
6322 amar.kumar 178
 
7567 rajveer 179
	void updatePincode(1:i64 providerId, 2:string pincode, 3:bool exp, 4:bool cod, 5:bool otgAvailable),
180
 
7734 manish.sha 181
	bool addNewAwbs(1:i64 providerId, 2:bool cod, 3:list<string> awbs),
182
 
7888 rajveer 183
	void runLogisticsLocationInfoUpdate(1:list<LogisticsLocationInfo> logisticsLocationInfoList, 2:bool runCompleteUpdate),
184
 
185
	i64 adjustDeliveryDays(1:i64 startDate, 2:i64 days)
186
 
412 ashish 187
}