@@ -10,6 +10,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
1010 public let customerID : Int64
1111 public let orderKey : String
1212
13+ public let isEditable : Bool
14+ public let needsPayment : Bool
15+ public let needsProcessing : Bool
1316 public let number : String
1417 /// The Order status.
1518 ///
@@ -50,6 +53,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
5053 parentID: Int64 ,
5154 customerID: Int64 ,
5255 orderKey: String ,
56+ isEditable: Bool ,
57+ needsPayment: Bool ,
58+ needsProcessing: Bool ,
5359 number: String ,
5460 status: OrderStatusEnum ,
5561 currency: String ,
@@ -82,6 +88,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
8288 self . customerID = customerID
8389 self . orderKey = orderKey
8490
91+ self . isEditable = isEditable
92+ self . needsPayment = needsPayment
93+ self . needsProcessing = needsProcessing
8594 self . number = number
8695 self . status = status
8796 self . currency = currency
@@ -127,6 +136,11 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
127136 let customerID = try container. decode ( Int64 . self, forKey: . customerID)
128137 let orderKey = try container. decode ( String . self, forKey: . orderKey)
129138
139+ // TODO: Update with local fallback implementation https://github.com/woocommerce/woocommerce-ios/issues/6977
140+ let isEditable = try container. decodeIfPresent ( Bool . self, forKey: . isEditable) ?? false
141+ let needsPayment = try container. decodeIfPresent ( Bool . self, forKey: . needsPayment) ?? false
142+ let needsProcessing = try container. decodeIfPresent ( Bool . self, forKey: . needsProcessing) ?? false
143+
130144 let number = try container. decode ( String . self, forKey: . number)
131145 let status = try container. decode ( OrderStatusEnum . self, forKey: . status)
132146
@@ -183,6 +197,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
183197 parentID: parentID,
184198 customerID: customerID,
185199 orderKey: orderKey,
200+ isEditable: isEditable,
201+ needsPayment: needsPayment,
202+ needsProcessing: needsProcessing,
186203 number: number,
187204 status: status,
188205 currency: currency,
@@ -216,6 +233,9 @@ public struct Order: Decodable, GeneratedCopiable, GeneratedFakeable {
216233 parentID: 0 ,
217234 customerID: 0 ,
218235 orderKey: " " ,
236+ isEditable: false ,
237+ needsPayment: false ,
238+ needsProcessing: false ,
219239 number: " " ,
220240 status: . pending,
221241 currency: " " ,
@@ -255,6 +275,9 @@ internal extension Order {
255275 case customerID = " customer_id "
256276 case orderKey = " order_key "
257277
278+ case isEditable = " is_editable "
279+ case needsPayment = " needs_payment "
280+ case needsProcessing = " needs_processing "
258281 case number = " number "
259282 case status = " status "
260283 case currency = " currency "
@@ -297,6 +320,9 @@ extension Order: Equatable {
297320 lhs. parentID == rhs. parentID &&
298321 lhs. customerID == rhs. customerID &&
299322 lhs. orderKey == rhs. orderKey &&
323+ lhs. isEditable == rhs. isEditable &&
324+ lhs. needsPayment == rhs. needsPayment &&
325+ lhs. needsProcessing == rhs. needsProcessing &&
300326 lhs. number == rhs. number &&
301327 lhs. status == rhs. status &&
302328 lhs. dateCreated == rhs. dateCreated &&
0 commit comments