Subversion Repositories SmartDukaan

Rev

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