paymentorder.go 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. "strings"
  7. "time"
  8. "entgo.io/ent"
  9. "entgo.io/ent/dialect/sql"
  10. "github.com/Wei-Shaw/sub2api/ent/paymentorder"
  11. "github.com/Wei-Shaw/sub2api/ent/user"
  12. )
  13. // PaymentOrder is the model entity for the PaymentOrder schema.
  14. type PaymentOrder struct {
  15. config `json:"-"`
  16. // ID of the ent.
  17. ID int64 `json:"id,omitempty"`
  18. // UserID holds the value of the "user_id" field.
  19. UserID int64 `json:"user_id,omitempty"`
  20. // UserEmail holds the value of the "user_email" field.
  21. UserEmail string `json:"user_email,omitempty"`
  22. // UserName holds the value of the "user_name" field.
  23. UserName string `json:"user_name,omitempty"`
  24. // UserNotes holds the value of the "user_notes" field.
  25. UserNotes *string `json:"user_notes,omitempty"`
  26. // Amount holds the value of the "amount" field.
  27. Amount float64 `json:"amount,omitempty"`
  28. // PayAmount holds the value of the "pay_amount" field.
  29. PayAmount float64 `json:"pay_amount,omitempty"`
  30. // FeeRate holds the value of the "fee_rate" field.
  31. FeeRate float64 `json:"fee_rate,omitempty"`
  32. // RechargeCode holds the value of the "recharge_code" field.
  33. RechargeCode string `json:"recharge_code,omitempty"`
  34. // OutTradeNo holds the value of the "out_trade_no" field.
  35. OutTradeNo string `json:"out_trade_no,omitempty"`
  36. // PaymentType holds the value of the "payment_type" field.
  37. PaymentType string `json:"payment_type,omitempty"`
  38. // PaymentTradeNo holds the value of the "payment_trade_no" field.
  39. PaymentTradeNo string `json:"payment_trade_no,omitempty"`
  40. // PayURL holds the value of the "pay_url" field.
  41. PayURL *string `json:"pay_url,omitempty"`
  42. // QrCode holds the value of the "qr_code" field.
  43. QrCode *string `json:"qr_code,omitempty"`
  44. // QrCodeImg holds the value of the "qr_code_img" field.
  45. QrCodeImg *string `json:"qr_code_img,omitempty"`
  46. // OrderType holds the value of the "order_type" field.
  47. OrderType string `json:"order_type,omitempty"`
  48. // PlanID holds the value of the "plan_id" field.
  49. PlanID *int64 `json:"plan_id,omitempty"`
  50. // SubscriptionGroupID holds the value of the "subscription_group_id" field.
  51. SubscriptionGroupID *int64 `json:"subscription_group_id,omitempty"`
  52. // SubscriptionDays holds the value of the "subscription_days" field.
  53. SubscriptionDays *int `json:"subscription_days,omitempty"`
  54. // ProviderInstanceID holds the value of the "provider_instance_id" field.
  55. ProviderInstanceID *string `json:"provider_instance_id,omitempty"`
  56. // ProviderKey holds the value of the "provider_key" field.
  57. ProviderKey *string `json:"provider_key,omitempty"`
  58. // ProviderSnapshot holds the value of the "provider_snapshot" field.
  59. ProviderSnapshot map[string]interface{} `json:"provider_snapshot,omitempty"`
  60. // Status holds the value of the "status" field.
  61. Status string `json:"status,omitempty"`
  62. // RefundAmount holds the value of the "refund_amount" field.
  63. RefundAmount float64 `json:"refund_amount,omitempty"`
  64. // RefundReason holds the value of the "refund_reason" field.
  65. RefundReason *string `json:"refund_reason,omitempty"`
  66. // RefundAt holds the value of the "refund_at" field.
  67. RefundAt *time.Time `json:"refund_at,omitempty"`
  68. // ForceRefund holds the value of the "force_refund" field.
  69. ForceRefund bool `json:"force_refund,omitempty"`
  70. // RefundRequestedAt holds the value of the "refund_requested_at" field.
  71. RefundRequestedAt *time.Time `json:"refund_requested_at,omitempty"`
  72. // RefundRequestReason holds the value of the "refund_request_reason" field.
  73. RefundRequestReason *string `json:"refund_request_reason,omitempty"`
  74. // RefundRequestedBy holds the value of the "refund_requested_by" field.
  75. RefundRequestedBy *string `json:"refund_requested_by,omitempty"`
  76. // ExpiresAt holds the value of the "expires_at" field.
  77. ExpiresAt time.Time `json:"expires_at,omitempty"`
  78. // PaidAt holds the value of the "paid_at" field.
  79. PaidAt *time.Time `json:"paid_at,omitempty"`
  80. // CompletedAt holds the value of the "completed_at" field.
  81. CompletedAt *time.Time `json:"completed_at,omitempty"`
  82. // FailedAt holds the value of the "failed_at" field.
  83. FailedAt *time.Time `json:"failed_at,omitempty"`
  84. // FailedReason holds the value of the "failed_reason" field.
  85. FailedReason *string `json:"failed_reason,omitempty"`
  86. // ClientIP holds the value of the "client_ip" field.
  87. ClientIP string `json:"client_ip,omitempty"`
  88. // SrcHost holds the value of the "src_host" field.
  89. SrcHost string `json:"src_host,omitempty"`
  90. // SrcURL holds the value of the "src_url" field.
  91. SrcURL *string `json:"src_url,omitempty"`
  92. // CreatedAt holds the value of the "created_at" field.
  93. CreatedAt time.Time `json:"created_at,omitempty"`
  94. // UpdatedAt holds the value of the "updated_at" field.
  95. UpdatedAt time.Time `json:"updated_at,omitempty"`
  96. // Edges holds the relations/edges for other nodes in the graph.
  97. // The values are being populated by the PaymentOrderQuery when eager-loading is set.
  98. Edges PaymentOrderEdges `json:"edges"`
  99. selectValues sql.SelectValues
  100. }
  101. // PaymentOrderEdges holds the relations/edges for other nodes in the graph.
  102. type PaymentOrderEdges struct {
  103. // User holds the value of the user edge.
  104. User *User `json:"user,omitempty"`
  105. // loadedTypes holds the information for reporting if a
  106. // type was loaded (or requested) in eager-loading or not.
  107. loadedTypes [1]bool
  108. }
  109. // UserOrErr returns the User value or an error if the edge
  110. // was not loaded in eager-loading, or loaded but was not found.
  111. func (e PaymentOrderEdges) UserOrErr() (*User, error) {
  112. if e.User != nil {
  113. return e.User, nil
  114. } else if e.loadedTypes[0] {
  115. return nil, &NotFoundError{label: user.Label}
  116. }
  117. return nil, &NotLoadedError{edge: "user"}
  118. }
  119. // scanValues returns the types for scanning values from sql.Rows.
  120. func (*PaymentOrder) scanValues(columns []string) ([]any, error) {
  121. values := make([]any, len(columns))
  122. for i := range columns {
  123. switch columns[i] {
  124. case paymentorder.FieldProviderSnapshot:
  125. values[i] = new([]byte)
  126. case paymentorder.FieldForceRefund:
  127. values[i] = new(sql.NullBool)
  128. case paymentorder.FieldAmount, paymentorder.FieldPayAmount, paymentorder.FieldFeeRate, paymentorder.FieldRefundAmount:
  129. values[i] = new(sql.NullFloat64)
  130. case paymentorder.FieldID, paymentorder.FieldUserID, paymentorder.FieldPlanID, paymentorder.FieldSubscriptionGroupID, paymentorder.FieldSubscriptionDays:
  131. values[i] = new(sql.NullInt64)
  132. case paymentorder.FieldUserEmail, paymentorder.FieldUserName, paymentorder.FieldUserNotes, paymentorder.FieldRechargeCode, paymentorder.FieldOutTradeNo, paymentorder.FieldPaymentType, paymentorder.FieldPaymentTradeNo, paymentorder.FieldPayURL, paymentorder.FieldQrCode, paymentorder.FieldQrCodeImg, paymentorder.FieldOrderType, paymentorder.FieldProviderInstanceID, paymentorder.FieldProviderKey, paymentorder.FieldStatus, paymentorder.FieldRefundReason, paymentorder.FieldRefundRequestReason, paymentorder.FieldRefundRequestedBy, paymentorder.FieldFailedReason, paymentorder.FieldClientIP, paymentorder.FieldSrcHost, paymentorder.FieldSrcURL:
  133. values[i] = new(sql.NullString)
  134. case paymentorder.FieldRefundAt, paymentorder.FieldRefundRequestedAt, paymentorder.FieldExpiresAt, paymentorder.FieldPaidAt, paymentorder.FieldCompletedAt, paymentorder.FieldFailedAt, paymentorder.FieldCreatedAt, paymentorder.FieldUpdatedAt:
  135. values[i] = new(sql.NullTime)
  136. default:
  137. values[i] = new(sql.UnknownType)
  138. }
  139. }
  140. return values, nil
  141. }
  142. // assignValues assigns the values that were returned from sql.Rows (after scanning)
  143. // to the PaymentOrder fields.
  144. func (_m *PaymentOrder) assignValues(columns []string, values []any) error {
  145. if m, n := len(values), len(columns); m < n {
  146. return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
  147. }
  148. for i := range columns {
  149. switch columns[i] {
  150. case paymentorder.FieldID:
  151. value, ok := values[i].(*sql.NullInt64)
  152. if !ok {
  153. return fmt.Errorf("unexpected type %T for field id", value)
  154. }
  155. _m.ID = int64(value.Int64)
  156. case paymentorder.FieldUserID:
  157. if value, ok := values[i].(*sql.NullInt64); !ok {
  158. return fmt.Errorf("unexpected type %T for field user_id", values[i])
  159. } else if value.Valid {
  160. _m.UserID = value.Int64
  161. }
  162. case paymentorder.FieldUserEmail:
  163. if value, ok := values[i].(*sql.NullString); !ok {
  164. return fmt.Errorf("unexpected type %T for field user_email", values[i])
  165. } else if value.Valid {
  166. _m.UserEmail = value.String
  167. }
  168. case paymentorder.FieldUserName:
  169. if value, ok := values[i].(*sql.NullString); !ok {
  170. return fmt.Errorf("unexpected type %T for field user_name", values[i])
  171. } else if value.Valid {
  172. _m.UserName = value.String
  173. }
  174. case paymentorder.FieldUserNotes:
  175. if value, ok := values[i].(*sql.NullString); !ok {
  176. return fmt.Errorf("unexpected type %T for field user_notes", values[i])
  177. } else if value.Valid {
  178. _m.UserNotes = new(string)
  179. *_m.UserNotes = value.String
  180. }
  181. case paymentorder.FieldAmount:
  182. if value, ok := values[i].(*sql.NullFloat64); !ok {
  183. return fmt.Errorf("unexpected type %T for field amount", values[i])
  184. } else if value.Valid {
  185. _m.Amount = value.Float64
  186. }
  187. case paymentorder.FieldPayAmount:
  188. if value, ok := values[i].(*sql.NullFloat64); !ok {
  189. return fmt.Errorf("unexpected type %T for field pay_amount", values[i])
  190. } else if value.Valid {
  191. _m.PayAmount = value.Float64
  192. }
  193. case paymentorder.FieldFeeRate:
  194. if value, ok := values[i].(*sql.NullFloat64); !ok {
  195. return fmt.Errorf("unexpected type %T for field fee_rate", values[i])
  196. } else if value.Valid {
  197. _m.FeeRate = value.Float64
  198. }
  199. case paymentorder.FieldRechargeCode:
  200. if value, ok := values[i].(*sql.NullString); !ok {
  201. return fmt.Errorf("unexpected type %T for field recharge_code", values[i])
  202. } else if value.Valid {
  203. _m.RechargeCode = value.String
  204. }
  205. case paymentorder.FieldOutTradeNo:
  206. if value, ok := values[i].(*sql.NullString); !ok {
  207. return fmt.Errorf("unexpected type %T for field out_trade_no", values[i])
  208. } else if value.Valid {
  209. _m.OutTradeNo = value.String
  210. }
  211. case paymentorder.FieldPaymentType:
  212. if value, ok := values[i].(*sql.NullString); !ok {
  213. return fmt.Errorf("unexpected type %T for field payment_type", values[i])
  214. } else if value.Valid {
  215. _m.PaymentType = value.String
  216. }
  217. case paymentorder.FieldPaymentTradeNo:
  218. if value, ok := values[i].(*sql.NullString); !ok {
  219. return fmt.Errorf("unexpected type %T for field payment_trade_no", values[i])
  220. } else if value.Valid {
  221. _m.PaymentTradeNo = value.String
  222. }
  223. case paymentorder.FieldPayURL:
  224. if value, ok := values[i].(*sql.NullString); !ok {
  225. return fmt.Errorf("unexpected type %T for field pay_url", values[i])
  226. } else if value.Valid {
  227. _m.PayURL = new(string)
  228. *_m.PayURL = value.String
  229. }
  230. case paymentorder.FieldQrCode:
  231. if value, ok := values[i].(*sql.NullString); !ok {
  232. return fmt.Errorf("unexpected type %T for field qr_code", values[i])
  233. } else if value.Valid {
  234. _m.QrCode = new(string)
  235. *_m.QrCode = value.String
  236. }
  237. case paymentorder.FieldQrCodeImg:
  238. if value, ok := values[i].(*sql.NullString); !ok {
  239. return fmt.Errorf("unexpected type %T for field qr_code_img", values[i])
  240. } else if value.Valid {
  241. _m.QrCodeImg = new(string)
  242. *_m.QrCodeImg = value.String
  243. }
  244. case paymentorder.FieldOrderType:
  245. if value, ok := values[i].(*sql.NullString); !ok {
  246. return fmt.Errorf("unexpected type %T for field order_type", values[i])
  247. } else if value.Valid {
  248. _m.OrderType = value.String
  249. }
  250. case paymentorder.FieldPlanID:
  251. if value, ok := values[i].(*sql.NullInt64); !ok {
  252. return fmt.Errorf("unexpected type %T for field plan_id", values[i])
  253. } else if value.Valid {
  254. _m.PlanID = new(int64)
  255. *_m.PlanID = value.Int64
  256. }
  257. case paymentorder.FieldSubscriptionGroupID:
  258. if value, ok := values[i].(*sql.NullInt64); !ok {
  259. return fmt.Errorf("unexpected type %T for field subscription_group_id", values[i])
  260. } else if value.Valid {
  261. _m.SubscriptionGroupID = new(int64)
  262. *_m.SubscriptionGroupID = value.Int64
  263. }
  264. case paymentorder.FieldSubscriptionDays:
  265. if value, ok := values[i].(*sql.NullInt64); !ok {
  266. return fmt.Errorf("unexpected type %T for field subscription_days", values[i])
  267. } else if value.Valid {
  268. _m.SubscriptionDays = new(int)
  269. *_m.SubscriptionDays = int(value.Int64)
  270. }
  271. case paymentorder.FieldProviderInstanceID:
  272. if value, ok := values[i].(*sql.NullString); !ok {
  273. return fmt.Errorf("unexpected type %T for field provider_instance_id", values[i])
  274. } else if value.Valid {
  275. _m.ProviderInstanceID = new(string)
  276. *_m.ProviderInstanceID = value.String
  277. }
  278. case paymentorder.FieldProviderKey:
  279. if value, ok := values[i].(*sql.NullString); !ok {
  280. return fmt.Errorf("unexpected type %T for field provider_key", values[i])
  281. } else if value.Valid {
  282. _m.ProviderKey = new(string)
  283. *_m.ProviderKey = value.String
  284. }
  285. case paymentorder.FieldProviderSnapshot:
  286. if value, ok := values[i].(*[]byte); !ok {
  287. return fmt.Errorf("unexpected type %T for field provider_snapshot", values[i])
  288. } else if value != nil && len(*value) > 0 {
  289. if err := json.Unmarshal(*value, &_m.ProviderSnapshot); err != nil {
  290. return fmt.Errorf("unmarshal field provider_snapshot: %w", err)
  291. }
  292. }
  293. case paymentorder.FieldStatus:
  294. if value, ok := values[i].(*sql.NullString); !ok {
  295. return fmt.Errorf("unexpected type %T for field status", values[i])
  296. } else if value.Valid {
  297. _m.Status = value.String
  298. }
  299. case paymentorder.FieldRefundAmount:
  300. if value, ok := values[i].(*sql.NullFloat64); !ok {
  301. return fmt.Errorf("unexpected type %T for field refund_amount", values[i])
  302. } else if value.Valid {
  303. _m.RefundAmount = value.Float64
  304. }
  305. case paymentorder.FieldRefundReason:
  306. if value, ok := values[i].(*sql.NullString); !ok {
  307. return fmt.Errorf("unexpected type %T for field refund_reason", values[i])
  308. } else if value.Valid {
  309. _m.RefundReason = new(string)
  310. *_m.RefundReason = value.String
  311. }
  312. case paymentorder.FieldRefundAt:
  313. if value, ok := values[i].(*sql.NullTime); !ok {
  314. return fmt.Errorf("unexpected type %T for field refund_at", values[i])
  315. } else if value.Valid {
  316. _m.RefundAt = new(time.Time)
  317. *_m.RefundAt = value.Time
  318. }
  319. case paymentorder.FieldForceRefund:
  320. if value, ok := values[i].(*sql.NullBool); !ok {
  321. return fmt.Errorf("unexpected type %T for field force_refund", values[i])
  322. } else if value.Valid {
  323. _m.ForceRefund = value.Bool
  324. }
  325. case paymentorder.FieldRefundRequestedAt:
  326. if value, ok := values[i].(*sql.NullTime); !ok {
  327. return fmt.Errorf("unexpected type %T for field refund_requested_at", values[i])
  328. } else if value.Valid {
  329. _m.RefundRequestedAt = new(time.Time)
  330. *_m.RefundRequestedAt = value.Time
  331. }
  332. case paymentorder.FieldRefundRequestReason:
  333. if value, ok := values[i].(*sql.NullString); !ok {
  334. return fmt.Errorf("unexpected type %T for field refund_request_reason", values[i])
  335. } else if value.Valid {
  336. _m.RefundRequestReason = new(string)
  337. *_m.RefundRequestReason = value.String
  338. }
  339. case paymentorder.FieldRefundRequestedBy:
  340. if value, ok := values[i].(*sql.NullString); !ok {
  341. return fmt.Errorf("unexpected type %T for field refund_requested_by", values[i])
  342. } else if value.Valid {
  343. _m.RefundRequestedBy = new(string)
  344. *_m.RefundRequestedBy = value.String
  345. }
  346. case paymentorder.FieldExpiresAt:
  347. if value, ok := values[i].(*sql.NullTime); !ok {
  348. return fmt.Errorf("unexpected type %T for field expires_at", values[i])
  349. } else if value.Valid {
  350. _m.ExpiresAt = value.Time
  351. }
  352. case paymentorder.FieldPaidAt:
  353. if value, ok := values[i].(*sql.NullTime); !ok {
  354. return fmt.Errorf("unexpected type %T for field paid_at", values[i])
  355. } else if value.Valid {
  356. _m.PaidAt = new(time.Time)
  357. *_m.PaidAt = value.Time
  358. }
  359. case paymentorder.FieldCompletedAt:
  360. if value, ok := values[i].(*sql.NullTime); !ok {
  361. return fmt.Errorf("unexpected type %T for field completed_at", values[i])
  362. } else if value.Valid {
  363. _m.CompletedAt = new(time.Time)
  364. *_m.CompletedAt = value.Time
  365. }
  366. case paymentorder.FieldFailedAt:
  367. if value, ok := values[i].(*sql.NullTime); !ok {
  368. return fmt.Errorf("unexpected type %T for field failed_at", values[i])
  369. } else if value.Valid {
  370. _m.FailedAt = new(time.Time)
  371. *_m.FailedAt = value.Time
  372. }
  373. case paymentorder.FieldFailedReason:
  374. if value, ok := values[i].(*sql.NullString); !ok {
  375. return fmt.Errorf("unexpected type %T for field failed_reason", values[i])
  376. } else if value.Valid {
  377. _m.FailedReason = new(string)
  378. *_m.FailedReason = value.String
  379. }
  380. case paymentorder.FieldClientIP:
  381. if value, ok := values[i].(*sql.NullString); !ok {
  382. return fmt.Errorf("unexpected type %T for field client_ip", values[i])
  383. } else if value.Valid {
  384. _m.ClientIP = value.String
  385. }
  386. case paymentorder.FieldSrcHost:
  387. if value, ok := values[i].(*sql.NullString); !ok {
  388. return fmt.Errorf("unexpected type %T for field src_host", values[i])
  389. } else if value.Valid {
  390. _m.SrcHost = value.String
  391. }
  392. case paymentorder.FieldSrcURL:
  393. if value, ok := values[i].(*sql.NullString); !ok {
  394. return fmt.Errorf("unexpected type %T for field src_url", values[i])
  395. } else if value.Valid {
  396. _m.SrcURL = new(string)
  397. *_m.SrcURL = value.String
  398. }
  399. case paymentorder.FieldCreatedAt:
  400. if value, ok := values[i].(*sql.NullTime); !ok {
  401. return fmt.Errorf("unexpected type %T for field created_at", values[i])
  402. } else if value.Valid {
  403. _m.CreatedAt = value.Time
  404. }
  405. case paymentorder.FieldUpdatedAt:
  406. if value, ok := values[i].(*sql.NullTime); !ok {
  407. return fmt.Errorf("unexpected type %T for field updated_at", values[i])
  408. } else if value.Valid {
  409. _m.UpdatedAt = value.Time
  410. }
  411. default:
  412. _m.selectValues.Set(columns[i], values[i])
  413. }
  414. }
  415. return nil
  416. }
  417. // Value returns the ent.Value that was dynamically selected and assigned to the PaymentOrder.
  418. // This includes values selected through modifiers, order, etc.
  419. func (_m *PaymentOrder) Value(name string) (ent.Value, error) {
  420. return _m.selectValues.Get(name)
  421. }
  422. // QueryUser queries the "user" edge of the PaymentOrder entity.
  423. func (_m *PaymentOrder) QueryUser() *UserQuery {
  424. return NewPaymentOrderClient(_m.config).QueryUser(_m)
  425. }
  426. // Update returns a builder for updating this PaymentOrder.
  427. // Note that you need to call PaymentOrder.Unwrap() before calling this method if this PaymentOrder
  428. // was returned from a transaction, and the transaction was committed or rolled back.
  429. func (_m *PaymentOrder) Update() *PaymentOrderUpdateOne {
  430. return NewPaymentOrderClient(_m.config).UpdateOne(_m)
  431. }
  432. // Unwrap unwraps the PaymentOrder entity that was returned from a transaction after it was closed,
  433. // so that all future queries will be executed through the driver which created the transaction.
  434. func (_m *PaymentOrder) Unwrap() *PaymentOrder {
  435. _tx, ok := _m.config.driver.(*txDriver)
  436. if !ok {
  437. panic("ent: PaymentOrder is not a transactional entity")
  438. }
  439. _m.config.driver = _tx.drv
  440. return _m
  441. }
  442. // String implements the fmt.Stringer.
  443. func (_m *PaymentOrder) String() string {
  444. var builder strings.Builder
  445. builder.WriteString("PaymentOrder(")
  446. builder.WriteString(fmt.Sprintf("id=%v, ", _m.ID))
  447. builder.WriteString("user_id=")
  448. builder.WriteString(fmt.Sprintf("%v", _m.UserID))
  449. builder.WriteString(", ")
  450. builder.WriteString("user_email=")
  451. builder.WriteString(_m.UserEmail)
  452. builder.WriteString(", ")
  453. builder.WriteString("user_name=")
  454. builder.WriteString(_m.UserName)
  455. builder.WriteString(", ")
  456. if v := _m.UserNotes; v != nil {
  457. builder.WriteString("user_notes=")
  458. builder.WriteString(*v)
  459. }
  460. builder.WriteString(", ")
  461. builder.WriteString("amount=")
  462. builder.WriteString(fmt.Sprintf("%v", _m.Amount))
  463. builder.WriteString(", ")
  464. builder.WriteString("pay_amount=")
  465. builder.WriteString(fmt.Sprintf("%v", _m.PayAmount))
  466. builder.WriteString(", ")
  467. builder.WriteString("fee_rate=")
  468. builder.WriteString(fmt.Sprintf("%v", _m.FeeRate))
  469. builder.WriteString(", ")
  470. builder.WriteString("recharge_code=")
  471. builder.WriteString(_m.RechargeCode)
  472. builder.WriteString(", ")
  473. builder.WriteString("out_trade_no=")
  474. builder.WriteString(_m.OutTradeNo)
  475. builder.WriteString(", ")
  476. builder.WriteString("payment_type=")
  477. builder.WriteString(_m.PaymentType)
  478. builder.WriteString(", ")
  479. builder.WriteString("payment_trade_no=")
  480. builder.WriteString(_m.PaymentTradeNo)
  481. builder.WriteString(", ")
  482. if v := _m.PayURL; v != nil {
  483. builder.WriteString("pay_url=")
  484. builder.WriteString(*v)
  485. }
  486. builder.WriteString(", ")
  487. if v := _m.QrCode; v != nil {
  488. builder.WriteString("qr_code=")
  489. builder.WriteString(*v)
  490. }
  491. builder.WriteString(", ")
  492. if v := _m.QrCodeImg; v != nil {
  493. builder.WriteString("qr_code_img=")
  494. builder.WriteString(*v)
  495. }
  496. builder.WriteString(", ")
  497. builder.WriteString("order_type=")
  498. builder.WriteString(_m.OrderType)
  499. builder.WriteString(", ")
  500. if v := _m.PlanID; v != nil {
  501. builder.WriteString("plan_id=")
  502. builder.WriteString(fmt.Sprintf("%v", *v))
  503. }
  504. builder.WriteString(", ")
  505. if v := _m.SubscriptionGroupID; v != nil {
  506. builder.WriteString("subscription_group_id=")
  507. builder.WriteString(fmt.Sprintf("%v", *v))
  508. }
  509. builder.WriteString(", ")
  510. if v := _m.SubscriptionDays; v != nil {
  511. builder.WriteString("subscription_days=")
  512. builder.WriteString(fmt.Sprintf("%v", *v))
  513. }
  514. builder.WriteString(", ")
  515. if v := _m.ProviderInstanceID; v != nil {
  516. builder.WriteString("provider_instance_id=")
  517. builder.WriteString(*v)
  518. }
  519. builder.WriteString(", ")
  520. if v := _m.ProviderKey; v != nil {
  521. builder.WriteString("provider_key=")
  522. builder.WriteString(*v)
  523. }
  524. builder.WriteString(", ")
  525. builder.WriteString("provider_snapshot=")
  526. builder.WriteString(fmt.Sprintf("%v", _m.ProviderSnapshot))
  527. builder.WriteString(", ")
  528. builder.WriteString("status=")
  529. builder.WriteString(_m.Status)
  530. builder.WriteString(", ")
  531. builder.WriteString("refund_amount=")
  532. builder.WriteString(fmt.Sprintf("%v", _m.RefundAmount))
  533. builder.WriteString(", ")
  534. if v := _m.RefundReason; v != nil {
  535. builder.WriteString("refund_reason=")
  536. builder.WriteString(*v)
  537. }
  538. builder.WriteString(", ")
  539. if v := _m.RefundAt; v != nil {
  540. builder.WriteString("refund_at=")
  541. builder.WriteString(v.Format(time.ANSIC))
  542. }
  543. builder.WriteString(", ")
  544. builder.WriteString("force_refund=")
  545. builder.WriteString(fmt.Sprintf("%v", _m.ForceRefund))
  546. builder.WriteString(", ")
  547. if v := _m.RefundRequestedAt; v != nil {
  548. builder.WriteString("refund_requested_at=")
  549. builder.WriteString(v.Format(time.ANSIC))
  550. }
  551. builder.WriteString(", ")
  552. if v := _m.RefundRequestReason; v != nil {
  553. builder.WriteString("refund_request_reason=")
  554. builder.WriteString(*v)
  555. }
  556. builder.WriteString(", ")
  557. if v := _m.RefundRequestedBy; v != nil {
  558. builder.WriteString("refund_requested_by=")
  559. builder.WriteString(*v)
  560. }
  561. builder.WriteString(", ")
  562. builder.WriteString("expires_at=")
  563. builder.WriteString(_m.ExpiresAt.Format(time.ANSIC))
  564. builder.WriteString(", ")
  565. if v := _m.PaidAt; v != nil {
  566. builder.WriteString("paid_at=")
  567. builder.WriteString(v.Format(time.ANSIC))
  568. }
  569. builder.WriteString(", ")
  570. if v := _m.CompletedAt; v != nil {
  571. builder.WriteString("completed_at=")
  572. builder.WriteString(v.Format(time.ANSIC))
  573. }
  574. builder.WriteString(", ")
  575. if v := _m.FailedAt; v != nil {
  576. builder.WriteString("failed_at=")
  577. builder.WriteString(v.Format(time.ANSIC))
  578. }
  579. builder.WriteString(", ")
  580. if v := _m.FailedReason; v != nil {
  581. builder.WriteString("failed_reason=")
  582. builder.WriteString(*v)
  583. }
  584. builder.WriteString(", ")
  585. builder.WriteString("client_ip=")
  586. builder.WriteString(_m.ClientIP)
  587. builder.WriteString(", ")
  588. builder.WriteString("src_host=")
  589. builder.WriteString(_m.SrcHost)
  590. builder.WriteString(", ")
  591. if v := _m.SrcURL; v != nil {
  592. builder.WriteString("src_url=")
  593. builder.WriteString(*v)
  594. }
  595. builder.WriteString(", ")
  596. builder.WriteString("created_at=")
  597. builder.WriteString(_m.CreatedAt.Format(time.ANSIC))
  598. builder.WriteString(", ")
  599. builder.WriteString("updated_at=")
  600. builder.WriteString(_m.UpdatedAt.Format(time.ANSIC))
  601. builder.WriteByte(')')
  602. return builder.String()
  603. }
  604. // PaymentOrders is a parsable slice of PaymentOrder.
  605. type PaymentOrders []*PaymentOrder