Subversion Repositories SmartDukaan

Rev

Rev 4009 | Rev 4391 | 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
 
23
struct ProviderDetails{
24
	1:string accountNo,
25
	2:string email
26
}
27
 
412 ashish 28
struct Provider{
29
	1:i64 id,
667 chandransh 30
	2:string name,
3044 chandransh 31
	3:map<DeliveryType, ProviderDetails> details
412 ashish 32
}
33
 
4386 anupam.sin 34
struct Awb{
35
	1:i64 id,
36
	2:string awbNumber,
37
	3:i64 providerId,
38
	4:string deliveryType
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
 
483 rajveer 49
struct LogisticsInfo{
646 chandransh 50
	1:i64 warehouseId,
51
	2:i64 providerId,
52
	3:i64 deliveryTime,
4009 chandransh 53
	4:string airway_billno,
54
	5:i64 shippingTime
483 rajveer 55
}
56
 
472 rajveer 57
exception LogisticsServiceException{
58
	1:i64 id,
59
	2:string message
60
}
61
 
3374 rajveer 62
service LogisticsService extends GenericService.GenericService{
646 chandransh 63
	/**
667 chandransh 64
	 Returns a provider for a given provider ID. Throws an exception if none found.
65
	*/
66
	Provider getProvider(1:i64 providerId) throws (1:LogisticsServiceException lse),
67
 
68
	/**
673 chandransh 69
	 Returns a list containing all the providers.
70
	*/
71
	list<Provider> getAllProviders() throws (1:LogisticsServiceException lse),
72
 
73
	/**
646 chandransh 74
	 Returns a LogisticsInfo structure w/o an airway bill number. Use this method during the estimation phase.
75
	 Raises an exception if this pincode is not allocated to any warehouse zone or provider. Also, if the pincode
76
	 is allocated to a warehouse zone but there are no actual warehouses in that zone, an exception is raised. 
77
	 */
78
	LogisticsInfo getLogisticsEstimation(1:i64 itemId, 2:string destination_pin) throws (1:LogisticsServiceException se),
483 rajveer 79
 
646 chandransh 80
	/**
81
	 Same as above excpet that an airway bill number is also allocated and returned.
82
	*/
3044 chandransh 83
	LogisticsInfo getLogisticsInfo(1:string destination_pincode, 2:i64 item_id, 3:DeliveryType type) throws (1:LogisticsServiceException se),
477 rajveer 84
 
646 chandransh 85
	/**
86
	 Returns an unused AWB number for the given provider.
87
	*/
88
	string getEmptyAWB(1:i64 providerId) throws (1:LogisticsServiceException se),
472 rajveer 89
 
646 chandransh 90
	/**
91
	 Returns the list of updates for the given AWB number and provider id. The list is empty if there are no updates yet.
92
	*/
729 chandransh 93
	list<AwbUpdate> getShipmentInfo(1:string awb, 2:i64 providerId) throws (1:LogisticsServiceException se),
94
 
95
	/**
96
	 Returns the short three letter code of a pincode for the given provider.
97
     Raises an exception if the pin code is not serviced by the given provider.
98
	*/
1138 chandransh 99
	string getDestinationCode(1:i64 providerId, 2:string pinCode) throws (1:LogisticsServiceException se),
100
 
101
	/**
3103 chandransh 102
	Returns the number of unused AWB numbers for the given provider of the given type  
1138 chandransh 103
	*/
3103 chandransh 104
	i64 getFreeAwbCount(1:i64 providerId, 2:string type),
1730 ankur.sing 105
 
106
	/**
107
	Returns list of Holiday dates between fromDate and toDate (both inclusive)
108
	fromDate should be passed as milliseconds corresponding to the start of the day.
109
	If fromDate is passed as -1, fromDate is not considered for filtering
110
	If toDate is passed as -1, toDate is not considered for filtering
111
	*/
3060 chandransh 112
	list<i64> getHolidays(1:i64 fromDate, 2:i64 toDate),
113
 
114
	/**
115
	Returns true if COD is allowed for this destination pincode
116
	*/
4386 anupam.sin 117
	bool isCodAllowed(1:string destination_pincode),
118
 
119
	/**
120
	Returns AWB object identified by its AWB number
121
	*/
122
	Awb getAwbForNumber(1:string awbNumber)
412 ashish 123
}