Subversion Repositories SmartDukaan

Rev

Rev 1111 | Rev 1134 | 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,
483 rajveer 104
}
105
 
106
struct Transaction{
107
	1:i64 id,
108
	2:list<Order> orders,
680 rajveer 109
	3:i64 createdOn,
110
	4:TransactionStatus transactionStatus,
111
	5:string statusDescription,
112
	6:i64 shoppingCartid,
113
	7:i64 customer_id
483 rajveer 114
}
115
 
116
struct Alert{
117
	1:i64 id,
118
	2:i64 order_id,
119
	3:i64 type,
120
	4:i64 time_set,
121
	5:string comment,
122
	6:i64 time_unset
123
}
124
 
125
exception TransactionServiceException{
126
	1:i32 errorCode,
127
	2:string message
128
}
129
 
130
service TransactionService{
131
 
763 rajveer 132
	/**
133
	* For closing the open session in sqlalchemy
134
	*/
135
	void closeSession(),
136
 
483 rajveer 137
	i64 createTransaction(1:Transaction transaction) throws (1:TransactionServiceException ex),
138
 
139
	//	Get transaction methods.
140
	Transaction getTransaction(1:i64 id) throws (1:TransactionServiceException ex),
141
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus 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
	//	Order getter and setters
147
 
148
	/*
149
	list<Transaction> getTransactionsForShipmentStatus(1:ShipmentStatus status, 2:i64 from_date, 3:i64 to_date) throws (1:TransactionServiceException ex),
150
	list<Transaction> getTransactionsForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:TransactionStatus status) throws (1:TransactionServiceException ex),
151
	list<Transaction> getTransactionsForCustomerAndShipmentStatus(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:ShipmentStatus status) throws (1:TransactionServiceException ex),
152
	list<Transaction> getTransactionsForShoppingCartId(1:i64 shoppingCartId) throws (1:TransactionServiceException ex),
153
	TransactionStatus getTransactionStatus(1:i64 transactionId) throws (1:TransactionServiceException ex),
154
	bool changeTransactionStatus(1:i64 transactionId, 2:TransactionStatus status, 3:string description) throws (1:TransactionServiceException ex),
155
	*/
156
 
157
	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 158
 
1115 chandransh 159
	/**
160
	Returns orders within a range of their billing dates
161
	*/
1000 varun.gupt 162
	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 163
 
483 rajveer 164
	bool changeOrderStatus(1:i64 orderId, 2:OrderStatus status, 3:string description) throws (1:TransactionServiceException ex),
641 chandransh 165
	bool addBillingDetails(1:i64 orderId, 2:string invoice_number, 3:i64 jacket_number, 4:string billed_by) throws (1:TransactionServiceException ex),
495 rajveer 166
 
922 rajveer 167
	bool acceptOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
168
	bool billOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
1000 varun.gupt 169
 
483 rajveer 170
	list<Order> getOrdersForTransaction(1:i64 transactionId)  throws (1:TransactionServiceException ex),
171
	list<Order> getOrdersForCustomer(1:i64 customerId, 2:i64 from_date, 3:i64 to_date, 4:OrderStatus status) throws (1:TransactionServiceException ex),
172
	i64 createOrder(1:Order order) throws (1:TransactionServiceException ex),
173
	Order getOrder(1:i64 id) throws (1:TransactionServiceException ex),
174
	list<LineItem> getLineItemsForOrder(1:i64 orderId) throws (1:TransactionServiceException ex),
175
 
757 chandransh 176
	/**
177
	Marks all BILLED orders for a warehouse and a provider as SHIPPED_FROM_WH
178
	*/
179
	bool markOrdersAsManifested(1:i64 warehouseId, 2:i64 providerId) throws (1:TransactionServiceException ex),
1115 chandransh 180
 
181
	/**
182
	Marks all SHIPPED_FROM_WH orders of the previous day for a provider as SHIPPED_TO_LOGISTICS.
183
	Returns a list of orders that were shipped from warehouse but did not appear in the pick-up report.
184
	Raises an exception if we encounter report for an AWB number that we did not ship.
185
	*/
186
	list<Order> markOrdersAsPickedUp(1:i64 providerId, 2:map<string, i64> pickupDetails) throws (1:TransactionServiceException ex),
483 rajveer 187
	//Alerts apis 
188
	list<Alert> getAlerts(1:i64 orderId, 2:bool valid),
189
	void setAlert(1:i64 orderId, 2:bool unset, 3:i64 type, 4: string comment),
1115 chandransh 190
}