Subversion Repositories SmartDukaan

Rev

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