LNOrderResponse.swift 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. //
  2. // LNOrderResponse.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/18.
  6. //
  7. import Foundation
  8. import AutoCodable
  9. enum LNOrderStatus: Int, Decodable {
  10. case created = 0
  11. case waitingForAccept = 1
  12. case completed = 2
  13. case refunded = 3
  14. case accepted = 4
  15. case rejected = 5
  16. case servicing = 6
  17. case serviceDone = 7
  18. case cancelled = 8
  19. }
  20. enum LNOrderSource: Int, Decodable {
  21. case normal = 1
  22. case custom = 2
  23. }
  24. @AutoCodable
  25. class LNCreateOrderResponse: Decodable {
  26. var orderNo: String = ""
  27. var goldCoinBalance: Int = 0
  28. }
  29. @AutoCodable
  30. class LNOrderListItemVO: Decodable {
  31. var orderId: String = ""
  32. var avatar: String = ""
  33. var nickname: String = ""
  34. var bizCategoryName: String = ""
  35. var categoryIcon: String = ""
  36. var price: Double = 0
  37. var unit: String = ""
  38. var purchaseQty: Int = 0
  39. var status: LNOrderStatus = .created
  40. var createTime: Int = 0
  41. var star: Double = 0
  42. var refundApply: Bool = false
  43. var customerRemark: String = ""
  44. var gender: LNUserGender = .unknow
  45. var totalAmount: Double = 0
  46. var sellerUserNo: String = ""
  47. }
  48. @AutoCodable
  49. class LNOrderListResponse: Decodable {
  50. var list: [LNOrderListItemVO] = []
  51. var next: String = ""
  52. }
  53. @AutoCodable
  54. class LNOrderInfoVO: Decodable {
  55. var orderId: String = ""
  56. var avatar: String = ""
  57. var nickname: String = ""
  58. var bizCategoryName: String = ""
  59. var categoryIcon: String = ""
  60. var price: Double = 0
  61. var unit: String = ""
  62. var purchaseQty: Int = 0
  63. var status: LNOrderStatus = .created
  64. var createTime: Int = 0
  65. var star: Double = 0.0
  66. var refundApply: Bool = false
  67. var customerRemark: String = ""
  68. var gender: LNUserGender = .unknow
  69. var totalAmount: Double = 0
  70. init () { }
  71. }
  72. @AutoCodable
  73. class LNOrderAttachmentVO: Decodable {
  74. var attachmentUrl: String = ""
  75. }
  76. @AutoCodable
  77. class LNOrderDetailResponse: Decodable {
  78. var orderInfo: LNOrderInfoVO = LNOrderInfoVO()
  79. var reason: String = ""
  80. var attachments: [LNOrderAttachmentVO] = []
  81. var playmateReason: String = ""
  82. var playmateAttachments: [LNOrderAttachmentVO] = []
  83. }
  84. @AutoCodable
  85. class LNCreateOrderQRCodeResponse: Decodable {
  86. var qrCode: String = ""
  87. }
  88. @AutoCodable
  89. class LNOrderRecordItemVO: Decodable {
  90. var orderId: String = ""
  91. var avatar: String = ""
  92. var nickname: String = ""
  93. var bizCategoryName: String = ""
  94. var categoryIcon: String = ""
  95. var price: Double = 0
  96. var unit: String = ""
  97. var purchaseQty: Int = 0
  98. var status: LNOrderStatus = .created
  99. var createTime: Int = 0
  100. var star: Double = 0
  101. var refundApply: Bool = false
  102. var customerRemark: String = ""
  103. var gender: LNUserGender = .unknow
  104. var totalAmount: Double = 0
  105. var buyerUserNo: String = ""
  106. }
  107. @AutoCodable
  108. class LNOrderRecordListResponse: Decodable {
  109. var list: [LNOrderRecordItemVO] = []
  110. var next: String = ""
  111. }
  112. @AutoCodable
  113. class LNUnfinishedOrderVO: Decodable, LNOrderProtocol {
  114. var orderId: String = ""
  115. var avatar: String = ""
  116. var nickname: String = ""
  117. var bizCategoryName: String = ""
  118. var categoryIcon: String = ""
  119. var price: Double = 0
  120. var unit: String = ""
  121. var purchaseQty: Int = 0
  122. var status: LNOrderStatus = .created
  123. var createTime: Int = 0
  124. var star: Double = 0
  125. var refundApply: Bool = false
  126. var customerRemark: String = ""
  127. var gender: LNUserGender = .unknow
  128. var hasCredentials: Bool = false
  129. var buyerUserNo: String = ""
  130. }
  131. @AutoCodable
  132. class LNUnfinishedOrderListResponse: Decodable {
  133. var list: [LNUnfinishedOrderVO] = []
  134. var next: String = ""
  135. }
  136. @AutoCodable
  137. class LNQRCodeDetailResponse: Decodable {
  138. var qrCode: String = ""
  139. var avatar: String = ""
  140. var nickname: String = ""
  141. var bizCategoryName: String = ""
  142. var bizCategoryIcon: String = ""
  143. var price: Double = 0
  144. var unit: String = ""
  145. var purchaseQty: Int = 0
  146. var goldCoinAmount: Double = 0
  147. var type: LNOrderSource = .normal
  148. var star: Double = 0
  149. var currencyAmount: Double = 0
  150. var sellerUserNo: String = ""
  151. }
  152. @AutoCodable
  153. class LNLastOrderResponse: Decodable {
  154. var avatar: String = ""
  155. var nickname: String = ""
  156. var finishTime: Int = 0
  157. var bizCateGoryName: String = ""
  158. }
  159. @AutoCodable
  160. class LNOrderDiscountVO: Decodable {
  161. var hasChance: Bool = false
  162. var discountRate: Double = 0
  163. var eligiblePrice: Double = 0
  164. }