Invoice.js 2.4 KB

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