Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
68 ashish 1
namespace java in.shop2020.model.v1.order
95 ashish 2
namespace py shop2020.thriftpy.model.v1.order
68 ashish 3
/***
4
	Order objects.
5
*/
483 rajveer 6
enum OrderStatus{
845 chandransh 7
	PAYMENT_PENDING,
8
	PAYMENT_FAILED,
483 rajveer 9
	INIT,
10
	SUBMITTED_FOR_PROCESSING,
11
	ACCEPTED,
12
	INVENTORY_LOW,
495 rajveer 13
	REJECTED,
483 rajveer 14
	BILLED,
15
	READY_FOR_SHIPPING,
16
	SHIPPED_FROM_WH,
17
	SHIPPED_TO_LOGST,
18
	IN_TRANSIT,
19
	DELIVERY_SUCCESS,
20
	DELIVERY_FAILED_FIRST_ATTEMPT,
21
	DELIVERY_FAILED_SECOND_ATTEMPT,
22
	DELIVERY_FAILED_THIRD_ATTEMPT,
23
	DELIVERY_FAILED_WORNG_ADDRESS
24
	COMPLETED,
25
	CANCELED,
845 chandransh 26
	FAILED
483 rajveer 27
}
28
 
29
enum TransactionStatus{
30
	INIT,
31
	IN_PROCESS,
32
	COMPLETED,
33
	FAILED
34
}
35
 
36
 
37
struct LineItem{
38
	1:i64 id,
698 chandransh 39
	2:i64 item_id,
956 chandransh 40
	3:string productGroup
41
	4:string brand,
42
	5:string model_number,
43
	6:string color
44
	7:string model_name,
45
	8:string extra_info,
46
	9:double quantity,
47
	10:double unit_price,
48
	11:double unit_weight,
49
	12:double total_price,
1000 varun.gupt 50
	13:double transfer_price,
51
	14:double total_weight,
483 rajveer 52
}
53
 
54
 
55
struct Order{
56
	1:i64 id,
57
	2:i64 warehouse_id,
58
	/**
59
		item info
60
	**/
61
	3:list<LineItem> lineitems,
62
	/**
63
	  logistics info
64
	**/
65
	4:i64 logistics_provider_id,
66
	5:string airwaybill_no,
67
	6:string tracking_id,
68
	7:i64 expected_delivery_time,
69
	/**
70
	  customer info
71
	**/
72
	8:i64 customer_id,
73
	9:string customer_name,
74
	10:string customer_mobilenumber,
75
	11:string customer_pincode,
735 chandransh 76
	12:string customer_address1,
77
	13:string customer_address2,
78
	14:string customer_email,
79
	15:string customer_city,
80
	16:string customer_state,
483 rajveer 81
 
82
	/**
83
		status and misc info
84
	**/
735 chandransh 85
	17:OrderStatus status,
86
	18:string statusDescription,
87
	19:double total_amount,
88
	20:double total_weight,
483 rajveer 89
	/**
90
		billing info
91
	**/
735 chandransh 92
	21:string invoice_number,
93
	22:string billed_by,
483 rajveer 94
	/**
95
		timestamps
96
	**/
735 chandransh 97
	23:i64 created_timestamp,
98
	24:i64 accepted_timestamp,
99
	25:i64 billing_timestamp,
100
	26:i64 shipping_timestamp,
1115 chandransh 101
	27:i64 pickup_timestamp,
102
	28:i64 delivery_timestamp,
103
	29:i64 jacket_number,
1134 chandransh 104
	30:string receiver
483 rajveer 105
}
106
 
107
struct Transaction{
108
	1:i64 id,
109
	2:list<Order> orders,
680 rajveer 110
	3:i64 createdOn,
111
	4:TransactionStatus transactionStatus,
112
	5:string statusDescription,
113
	6:i64 shoppingCartid,
114
	7:i64 customer_id
483 rajveer 115
}
116
 
117
struct Alert{
118
	1:i64 id,
119
	2:i64 order_id,
120
	3:i64 type,
121
	4:i64 time_set,
122
	5:string comment,
123
	6:i64 time_unset
124
}
125
 
126
exception TransactionServiceException{
127
	1:i32 errorCode,
128
	2:string message
129
}
130
 
131
service TransactionService{
132
 
763 rajveer 133
	/**
134
	* For closing the open session in sqlalchemy
135
	*/
136
	void closeSession(),
137
 
483 rajveer 138
	i64 createTransaction(1:Transaction transaction) throws (1:TransactionServiceException ex),
139
 
140
	//	Get transaction methods.
141
	Transaction getTransaction(1:i64 id) throws (1:TransactionServiceException ex),
142
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
143
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
144
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
145
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
146
 
147
	//	Order getter and setters
148
 
149
	/*
150
	list<Transaction> getTransactionsForShipmentStatus(1:ShipmentStatus status, 2:i64 from_date, 3:i64 to_date) throws (1:TransactionServiceException ex),
151
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
152
	list<Transaction> getTransactionsForCustomerAndShipmentStatus(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:ShipmentStatus status) throws (1:TransactionServiceException ex),
153
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
154
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
155
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
156
	*/
157
 
158
	list<Order> getAllOrders(1:OrderStatus status, 2:i64 from_date, 3:i64 to_date, 4:i64 warehouse_id) throws (1:TransactionServiceException ex),
1111 varun.gupt 159
 
1115 chandransh 160
	/**
161
	Returns orders within a range of their billing dates
162
	*/
1000 varun.gupt 163
	list<Order> getOrdersByBillingDate(1:OrderStatus status, 2:i64 start_billing_date, 3:i64 end_billing_date, 4:i64 warehouse_id) throws (1:TransactionServiceException ex),
1111 varun.gupt 164
 
483 rajveer 165
	bool changeOrderStatus(1:i64 orderId, 2:OrderStatus status, 3:string description) throws (1:TransactionServiceException ex),
641 chandransh 166
	bool addBillingDetails(1:i64 orderId, 2:string invoice_number, 3:i64 jacket_number, 4:string billed_by) throws (1:TransactionServiceException ex),
495 rajveer 167
 
922 rajveer 168
	bool acceptOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
169
	bool billOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
1000 varun.gupt 170
 
483 rajveer 171
	list<Order> getOrdersForTransaction(1:i64 transactionId)  throws (1:TransactionServiceException ex),
172
	list<Order> getOrdersForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:OrderStatus status) throws (1:TransactionServiceException ex),
173
	i64 createOrder(1:Order order) throws (1:TransactionServiceException ex),
174
	Order getOrder(1:i64 id) throws (1:TransactionServiceException ex),
175
	list<LineItem> getLineItemsForOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
176
 
757 chandransh 177
	/**
178
	Marks all BILLED orders for a warehouse and a provider as SHIPPED_FROM_WH
179
	*/
180
	bool markOrdersAsManifested(1:i64 warehouseId, 2:i64 providerId) throws (1:TransactionServiceException ex),
1115 chandransh 181
 
182
	/**
183
	Marks all SHIPPED_FROM_WH orders of the previous day for a provider as SHIPPED_TO_LOGISTICS.
184
	Returns a list of orders that were shipped from warehouse but did not appear in the pick-up report.
185
	Raises an exception if we encounter report for an AWB number that we did not ship.
186
	*/
187
	list<Order> markOrdersAsPickedUp(1:i64 providerId, 2:map<string, i64> pickupDetails) throws (1:TransactionServiceException ex),
1134 chandransh 188
 
189
	/**
190
	Marks all orders with AWBs in the given map as delivered. Also sets the delivery timestamp and
191
	the name of the receiver.
192
	Raises an exception if we encounter report for an AWB number that we did not ship.
193
	*/
194
	void markOrdersAsDelivered(1:i64 providerId, 2:map<string, string> deliveredOrders) throws (1:TransactionServiceException ex),
195
 
196
	/**
197
	Mark all orders with AWBs in the given map as failed. Also sets the delivery timestamp.
198
	Raises an exception if we encounter report for an AWB number that we did not ship.
199
	*/
200
	void markOrdersAsFailed(1:i64 providerId, 2:map<string, string> returnedOrders) throws (1:TransactionServiceException ex),
201
 
483 rajveer 202
	//Alerts apis 
203
	list<Alert> getAlerts(1:i64 orderId, 2:bool valid),
204
	void setAlert(1:i64 orderId, 2:bool unset, 3:i64 type, 4: string comment),
1115 chandransh 205
}