Subversion Repositories SmartDukaan

Rev

Rev 5527 | Rev 5719 | 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
 
646 chandransh 11
enum WarehouseLocation{
12
	Delhi = 0,
13
	Mumbai = 1,
14
	Bangalore = 2,
15
	Kolkata = 3
412 ashish 16
}
17
 
3044 chandransh 18
enum DeliveryType {
19
	PREPAID = 0,
20
	COD = 1
21
}
22
 
5527 anupam.sin 23
enum PickUpType {
24
	COURIER = 0,
25
	RUNNER = 1,
26
	SELF = 2
27
}
28
 
3044 chandransh 29
struct ProviderDetails{
30
	1:string accountNo,
31
	2:string email
32
}
33
 
412 ashish 34
struct Provider{
35
	1:i64 id,
667 chandransh 36
	2:string name,
5527 anupam.sin 37
	3:map<DeliveryType, ProviderDetails> details,
38
	4:PickUpType pickup
412 ashish 39
}
40
 
646 chandransh 41
struct AwbUpdate{
42
    1:string awbNumber,
43
    2:string providerName,
44
    3:string location,
45
    4:i64 entryDate,
46
    5:string description
412 ashish 47
}
48
 
5110 mandeep.dh 49
struct LogisticsInfo {
646 chandransh 50
	1:i64 warehouseId,
51
	2:i64 providerId,
52
	3:i64 deliveryTime,
4009 chandransh 53
	4:string airway_billno,
4865 rajveer 54
	5:i64 shippingTime,
5110 mandeep.dh 55
	6:bool codAllowed,
56
	7:i64 fulfilmentWarehouseId
483 rajveer 57
}
58
 
5553 rajveer 59
struct PickupStore {
60
	1:i64 id,	
61
	2:string name,
62
    3:string line1,
63
    4:string line2,
64
    5:string city,
65
    6:string state,
66
    7:string pin,
67
    8:string phone
68
}
69
 
472 rajveer 70
exception LogisticsServiceException{
71
	1:i64 id,
72
	2:string message
73
}
74
 
3374 rajveer 75
service LogisticsService extends GenericService.GenericService{
646 chandransh 76
	/**
667 chandransh 77
	 Returns a provider for a given provider ID. Throws an exception if none found.
78
	*/
79
	Provider getProvider(1:i64 providerId) throws (1:LogisticsServiceException lse),
80
 
81
	/**
673 chandransh 82
	 Returns a list containing all the providers.
83
	*/
84
	list<Provider> getAllProviders() throws (1:LogisticsServiceException lse),
85
 
86
	/**
646 chandransh 87
	 Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
88
	 Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
4630 mandeep.dh 89
	 is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
646 chandransh 90
	 */
4630 mandeep.dh 91
	LogisticsInfo getLogisticsEstimation(1:i64 itemId, 2:string destination_pin, 3:DeliveryType type) throws (1:LogisticsServiceException se),
483 rajveer 92
 
646 chandransh 93
	/**
94
	 Same as above excpet that an airway bill number is also allocated and returned.
95
	*/
3044 chandransh 96
	LogisticsInfo getLogisticsInfo(1:string destination_pincode, 2:i64 item_id, 3:DeliveryType type) throws (1:LogisticsServiceException se),
477 rajveer 97
 
646 chandransh 98
	/**
99
	 Returns an unused AWB number for the given provider.
100
	*/
5247 rajveer 101
	string getEmptyAWB(1:i64 providerId, DeliveryType type) throws (1:LogisticsServiceException se),
472 rajveer 102
 
646 chandransh 103
	/**
104
	 Returns the list of updates for the given AWB number and provider id. The list is empty if there are no updates yet.
105
	*/
729 chandransh 106
	list<AwbUpdate> getShipmentInfo(1:string awb, 2:i64 providerId) throws (1:LogisticsServiceException se),
107
 
108
	/**
109
	 Returns the short three letter code of a pincode for the given provider.
110
     Raises an exception if the pin code is not serviced by the given provider.
111
	*/
1138 chandransh 112
	string getDestinationCode(1:i64 providerId, 2:string pinCode) throws (1:LogisticsServiceException se),
113
 
114
	/**
3103 chandransh 115
	Returns the number of unused AWB numbers for the given provider of the given type  
1138 chandransh 116
	*/
3103 chandransh 117
	i64 getFreeAwbCount(1:i64 providerId, 2:string type),
1730 ankur.sing 118
 
119
	/**
120
	Returns list of Holiday dates between fromDate and toDate (both inclusive)
121
	fromDate should be passed as milliseconds corresponding to the start of the day.
122
	If fromDate is passed as -1, fromDate is not considered for filtering
123
	If toDate is passed as -1, toDate is not considered for filtering
124
	*/
4934 amit.gupta 125
	list<i64> getHolidays(1:i64 fromDate, 2:i64 toDate),
126
 
127
	/**
128
	 Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
129
	 Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
130
	 is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised.
131
	 */
132
	list<i64> getEntityLogisticsEstimation(1:i64 catalogItemId, 2:string destination_pin, 3:DeliveryType type) throws (1:LogisticsServiceException se)
5527 anupam.sin 133
 
134
	/**
135
	* Returns the id for a given pickUpType
136
	*/
5553 rajveer 137
	i64 getProviderForPickupType(1:i64 pickUp),
138
 
139
 
140
	list<PickupStore> getAllPickupStores(),
141
 
142
	PickupStore getPickupStore(1:i64 storeId)
412 ashish 143
}