Subversion Repositories SmartDukaan

Rev

Rev 922 | Rev 1000 | 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,
50
	13:double total_weight,
483 rajveer 51
}
52
 
53
 
54
struct Order{
55
	1:i64 id,
56
	2:i64 warehouse_id,
57
	/**
58
		item info
59
	**/
60
	3:list<LineItem> lineitems,
61
	/**
62
	  logistics info
63
	**/
64
	4:i64 logistics_provider_id,
65
	5:string airwaybill_no,
66
	6:string tracking_id,
67
	7:i64 expected_delivery_time,
68
	/**
69
	  customer info
70
	**/
71
	8:i64 customer_id,
72
	9:string customer_name,
73
	10:string customer_mobilenumber,
74
	11:string customer_pincode,
735 chandransh 75
	12:string customer_address1,
76
	13:string customer_address2,
77
	14:string customer_email,
78
	15:string customer_city,
79
	16:string customer_state,
483 rajveer 80
 
81
	/**
82
		status and misc info
83
	**/
735 chandransh 84
	17:OrderStatus status,
85
	18:string statusDescription,
86
	19:double total_amount,
87
	20:double total_weight,
483 rajveer 88
	/**
89
		billing info
90
	**/
735 chandransh 91
	21:string invoice_number,
92
	22:string billed_by,
483 rajveer 93
	/**
94
		timestamps
95
	**/
735 chandransh 96
	23:i64 created_timestamp,
97
	24:i64 accepted_timestamp,
98
	25:i64 billing_timestamp,
99
	26:i64 shipping_timestamp,
100
	27:i64 delivery_timestamp,
101
	28:i64 jacket_number,
483 rajveer 102
}
103
 
104
struct Transaction{
105
	1:i64 id,
106
	2:list<Order> orders,
680 rajveer 107
	3:i64 createdOn,
108
	4:TransactionStatus transactionStatus,
109
	5:string statusDescription,
110
	6:i64 shoppingCartid,
111
	7:i64 customer_id
483 rajveer 112
}
113
 
114
struct Alert{
115
	1:i64 id,
116
	2:i64 order_id,
117
	3:i64 type,
118
	4:i64 time_set,
119
	5:string comment,
120
	6:i64 time_unset
121
}
122
 
123
exception TransactionServiceException{
124
	1:i32 errorCode,
125
	2:string message
126
}
127
 
128
service TransactionService{
129
 
763 rajveer 130
	/**
131
	* For closing the open session in sqlalchemy
132
	*/
133
	void closeSession(),
134
 
483 rajveer 135
	i64 createTransaction(1:Transaction transaction) throws (1:TransactionServiceException ex),
136
 
137
	//	Get transaction methods.
138
	Transaction getTransaction(1:i64 id) throws (1:TransactionServiceException ex),
139
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
140
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
141
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
142
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
143
 
144
	//	Order getter and setters
145
 
146
	/*
147
	list<Transaction> getTransactionsForShipmentStatus(1:ShipmentStatus status, 2:i64 from_date, 3:i64 to_date) throws (1:TransactionServiceException ex),
148
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
149
	list<Transaction> getTransactionsForCustomerAndShipmentStatus(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:ShipmentStatus status) throws (1:TransactionServiceException ex),
150
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
151
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
152
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
153
	*/
154
 
155
	list<Order> getAllOrders(1:OrderStatus status, 2:i64 from_date, 3:i64 to_date, 4:i64 warehouse_id) throws (1:TransactionServiceException ex),
156
	bool changeOrderStatus(1:i64 orderId, 2:OrderStatus status, 3:string description) throws (1:TransactionServiceException ex),
641 chandransh 157
	bool addBillingDetails(1:i64 orderId, 2:string invoice_number, 3:i64 jacket_number, 4:string billed_by) throws (1:TransactionServiceException ex),
495 rajveer 158
 
922 rajveer 159
	bool acceptOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
160
	bool billOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
161
 
483 rajveer 162
	list<Order> getOrdersForTransaction(1:i64 transactionId)  throws (1:TransactionServiceException ex),
163
	list<Order> getOrdersForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:OrderStatus status) throws (1:TransactionServiceException ex),
164
	i64 createOrder(1:Order order) throws (1:TransactionServiceException ex),
165
	Order getOrder(1:i64 id) throws (1:TransactionServiceException ex),
166
	list<LineItem> getLineItemsForOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
167
 
757 chandransh 168
	/**
169
	Marks all BILLED orders for a warehouse and a provider as SHIPPED_FROM_WH
170
	*/
171
	bool markOrdersAsManifested(1:i64 warehouseId, 2:i64 providerId) throws (1:TransactionServiceException ex),
483 rajveer 172
	//Alerts apis 
173
	list<Alert> getAlerts(1:i64 orderId, 2:bool valid),
174
	void setAlert(1:i64 orderId, 2:bool unset, 3:i64 type, 4: string comment),
175
}
176
 
177
 
178
/*
179
 
180
enum PaymentStatus{
181
	FAILURE,
182
	SUCCESS
183
}
184
 
68 ashish 185
enum ShipmentStatus{
196 ashish 186
	YET_TO_SHIP,
68 ashish 187
	SHIPPED,
188
	IN_TRANSIT,
121 ashish 189
	DELIVERY_SUCCESS,
190
	DELIVERY_FAILED_FIRST_ATTEMPT,
191
	DELIVERY_FAILED_SECOND_ATTEMPT,
192
	DELIVERY_FAILED_THIRD_ATTEMPT,
193
	DELIVERY_FAILED_WORNG_ADDRESS
68 ashish 194
}
195
 
196
enum TransactionStatus{
351 ashish 197
	INCOMPLETE,
68 ashish 198
	INIT,
199
	SUBMITTED_FOR_PROCESSING,
200
	ORDER_FULFILLMENT,
121 ashish 201
	READY_FOR_SHIPPING,
202
	SHIPPED,
203
	COMPLETED,
204
	CANCELED,
196 ashish 205
	FAILED,	
206
	BILLED	
68 ashish 207
}
208
 
483 rajveer 209
 
68 ashish 210
struct Item{
85 ashish 211
	1:i64 id,
121 ashish 212
	2:double price,
213
	3:double weight
68 ashish 214
}
215
 
216
struct LineItem{
217
	1:Item item,
218
	2:i64 id,
219
	3:i64 addedOn,
220
	4:map<string,string> additionalInfo
221
}
222
 
223
struct OrderInfo{
224
	1:i64 id,
225
	2:list<LineItem> lineitems
226
}
227
 
228
struct Billing{
229
	1:i64 id,
230
	2:string billNumber,
121 ashish 231
	3:list<LineItem> lineItem,
68 ashish 232
	4:i64 generatedTimestamp,
233
	5:string generatedBy
234
}
235
 
236
struct BillingInfo{
237
	1:i64 id,
238
	2:list<Billing> billings
239
}
240
 
241
struct Shipment{
242
	1:i64 id,
243
	2:string address,
244
	3:string trackingId,
245
	4:list<LineItem> lineItems,
246
	5:ShipmentStatus status,
247
	6:i64 shipmentTimestamp,
248
	7:i64 deliveryTimestamp,
249
	8:double value,
250
	9:double insurance,
251
	10:double weight,
252
	11:string airwayBillNo,
253
	12:string provider
254
}
255
 
256
struct ShipmentInfo{
257
	1:list<Shipment> shipments,
258
	2:i64 id
259
}
260
 
261
struct Payment{
262
	1:i64 id,
263
	2:string merchant_tx_id,
264
	3:string bank_tx_id,
265
	4:string mode,
266
	5:double amount,
267
	6:PaymentStatus status,
268
	7:string description,
269
	9:i64 submissionTimestamp,
270
	10:i64 completionTimestamp
271
}
272
 
273
struct PaymentInfo{
274
	1:i64 id,
275
	2:map<i64,Payment> payments
276
}
277
 
278
struct Transaction{
279
	1:i64 id,
280
	2:OrderInfo orderInfo,
281
	3:ShipmentInfo shipmentInfo,
282
	4:BillingInfo billingInfo,
283
	5:PaymentInfo paymentInfo,
284
	6:i64 createdOn,
285
	7:i64 expectedDeliveryTime,
286
	8:TransactionStatus transactionStatus,
287
	9:string statusDescription,
121 ashish 288
	10:i64 customer_id,
355 ashish 289
	11:i64 shoppingCartid,
290
	12:i64 warehouse_id
68 ashish 291
}
292
 
302 ashish 293
struct Alert{
294
	1:i64 id,
295
	2:i64 transaction_id,
296
	3:i64 type,
297
	4:i64 time_set,
298
	5:string comment,
299
	6:i64 time_unset
300
}
301
 
302
struct ExtraOrderInfo{
303
	1:i64 id,
304
	2:i64 transaction_id,
305
	3:i64 sku_id,
306
	4:string model_name,
307
	5:string vendor_info,
308
	6:string colour
309
}
310
 
483 rajveer 311
 
312
 
68 ashish 313
exception TransactionServiceException{
314
	1:i32 errorCode,
315
	2:string message
316
}
317
 
318
service TransactionService{
319
 
132 ashish 320
	i64 createTransaction(1:Transaction transaction) throws (1:TransactionServiceException ex),
483 rajveer 321
 
322
	//	Get transaction methods.
323
 
68 ashish 324
	Transaction getTransaction(1:i64 id) throws (1:TransactionServiceException ex),
355 ashish 325
	list<Transaction> getAllTransactions(1:TransactionStatus status, 2:i64 from_date, 3:i64 to_date, 4:i64 warehouse_id) throws (1:TransactionServiceException ex),
95 ashish 326
	list<Transaction> getTransactionsForShipmentStatus(1:ShipmentStatus status, 2:i64 from_date, 3:i64 to_date) throws (1:TransactionServiceException ex),
327
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
328
	list<Transaction> getTransactionsForCustomerAndShipmentStatus(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:ShipmentStatus status) throws (1:TransactionServiceException ex),
121 ashish 329
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
68 ashish 330
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
331
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
483 rajveer 332
 
333
	//	Get and set individual objects in it
334
 
68 ashish 335
	OrderInfo getOrderInfo(1:i64 transactionId) throws (1:TransactionServiceException ex),
336
	ShipmentInfo getShippingInfo(1:i64 transactionId) throws (1:TransactionServiceException ex),
337
	BillingInfo getBillingInfo(1:i64 transactionId) throws (1:TransactionServiceException ex),
338
	bool addBilling(1:i64 tranactionId,2: Billing billing) throws (1:TransactionServiceException ex),
339
	bool setShippingTracker(1:i64 transactionId, 2:i64 shippingId, 3:string trackingId, 4:string airwayBillNo, 5:string provider) throws (1:TransactionServiceException ex),
340
	bool setShippingDate(1:i64 transactionId, 2:i64 shippingId, 3:i64 timestamp) throws (1:TransactionServiceException ex),
341
	bool setDeliveryDate(1:i64 transactionId, 2:i64 shippingid, 3:i64 timestamp) throws (1:TransactionServiceException ex),
342
	bool changeShippingStatus(1:i64 transactionId, 2:i64 shippingId, 3:ShipmentStatus status, 4:string description) throws (1:TransactionServiceException ex),
302 ashish 343
	bool addTrail(1:i64 transactionId, 2:string description)throws (1:TransactionServiceException ex),
344
	//Alerts apis set on 5th June
345
	list<Alert> getAlerts(1:i64 transactionId, 2:bool valid),
346
	void setAlert(1:i64 transactionId, 2:bool unset, 3:i64 type, 4: string comment),
347
	//extra order info apis. added for demo
348
	ExtraOrderInfo getExtraInfo(1:i64 transaction_id),
349
	void setExtraInfo(1:i64 transaction_id, 2:i64 sku_id, 3:string model, 4:string colour, 5:string vendor)
483 rajveer 350
}
351
*/