Invoice.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import { User } from 'src/models/User.js'
  2. import { Basket } from 'src/models/Basket.js'
  3. import { Classroom } from 'src/models/Classroom.js'
  4. import { Model, Collection } from 'js-abstract-model'
  5. class Invoice extends Model {
  6. constructor (data) {
  7. super(data, [
  8. { key: 'id' },
  9. { key: 'title' },
  10. { key: 'wallet_inventory' },
  11. {
  12. key: 'amount',
  13. default: 0
  14. },
  15. { key: 'description' },
  16. { key: 'status' },
  17. { key: 'type' }, // CLASSROOM
  18. { key: 'additional_data' },
  19. { key: 'creation_time' },
  20. { key: 'last_modification_time' },
  21. { key: 'is_active' },
  22. { key: 'is_deleted' },
  23. { key: 'item_id' },
  24. { key: 'item_type' }, // CLASSROOM
  25. { key: 'instalments' },
  26. { key: 'instalments_info' },
  27. {
  28. key: 'item_info',
  29. relatedModel: Classroom
  30. },
  31. { key: 'creator' },
  32. {
  33. key: 'creator_info',
  34. relatedModel: User
  35. },
  36. { key: 'owner' },
  37. {
  38. key: 'owner_info',
  39. relatedModel: User
  40. }
  41. ], {
  42. status: {
  43. infoKey: 'status_info',
  44. enumListKey: 'statusEnums',
  45. enums: [
  46. {
  47. label: 'در حال تأیید',
  48. value: 'VERIFYING'
  49. },
  50. {
  51. label: 'لغو شد',
  52. value: 'CANCELED'
  53. },
  54. {
  55. label: 'تأیید نشده',
  56. value: 'NOT_VERIFIED'
  57. },
  58. {
  59. label: 'درحال پرداخت',
  60. value: 'PAYING'
  61. },
  62. {
  63. label: 'درحال تایید پرداخت',
  64. value: 'TRANSACTION_VERIFYING'
  65. },
  66. {
  67. label: 'پرداخت شده',
  68. value: 'PAID_FULL'
  69. },
  70. {
  71. label: 'درحال پرداخت اقساط',
  72. value: 'PAYING_IN_INSTALMENT'
  73. },
  74. {
  75. label: 'اقساط پرداخت شده',
  76. value: 'PAID_IN_INSTALMENT'
  77. }
  78. ]
  79. },
  80. type: {
  81. infoKey: 'type_info',
  82. enumListKey: 'typeEnums',
  83. enums: [
  84. {
  85. label: 'آموزش',
  86. value: 'CLASSROOM'
  87. },
  88. {
  89. label: 'فروشگاه',
  90. value: 'STORE_BASKET'
  91. },
  92. {
  93. label: 'رویداد',
  94. value: 'EVENT'
  95. }
  96. ]
  97. }
  98. })
  99. if (this.item_type === 'STORE_BASKET') {
  100. this.item_info = new Basket(data.item_info)
  101. }
  102. }
  103. }
  104. class InvoiceList extends Collection {
  105. model() {
  106. return Invoice
  107. }
  108. }
  109. export { Invoice, InvoiceList }