Subversion Repositories SmartDukaan

Rev

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