Notice.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import { User } from 'src/models/User.js'
  2. import { Collection, Model } from 'js-abstract-model'
  3. import { TicketCategory } from 'src/models/TicketCategory.js'
  4. class Notice extends Model {
  5. constructor (data) {
  6. super(data, [
  7. { key: 'id' },
  8. { key: 'title' },
  9. { key: 'body' }, //
  10. { key: 'priority' }, // HIGH - ...
  11. { key: 'status' }, // ADMIN_REPLIED - ...
  12. { key: 'state' },
  13. { key: 'creation_time' },
  14. { key: 'category' },
  15. {
  16. key: 'category_info',
  17. relatedModel: TicketCategory
  18. },
  19. { key: 'owner' },
  20. {
  21. key: 'owner_info',
  22. relatedModel: User
  23. }
  24. ], {
  25. status: {
  26. infoKey: 'status_info',
  27. enumListKey: 'statusEnums',
  28. enums: [
  29. {
  30. label: 'باز شده',
  31. value: 'OPENED'
  32. },
  33. {
  34. label: 'پاسخ داده شده',
  35. value: 'ADMIN_REPLIED'
  36. },
  37. {
  38. label: 'در حال انتظار',
  39. value: 'PENDING'
  40. },
  41. {
  42. label: 'خوانده نشده',
  43. value: 'UNREAD'
  44. },
  45. {
  46. label: 'خوانده شده',
  47. value: 'READ'
  48. },
  49. {
  50. label: 'بسته شده',
  51. value: 'CLOSED'
  52. }
  53. ]
  54. },
  55. state: {
  56. infoKey: 'state_info',
  57. enumListKey: 'stateEnums',
  58. enums: [
  59. {
  60. label: 'باز شده',
  61. value: 'OPENED'
  62. },
  63. {
  64. label: 'پاسخ داده شده',
  65. value: 'ADMIN_REPLIED'
  66. },
  67. {
  68. label: 'در حال انتظار',
  69. value: 'PENDING'
  70. },
  71. {
  72. label: 'خوانده نشده',
  73. value: 'UNREAD'
  74. },
  75. {
  76. label: 'خوانده شده',
  77. value: 'READ'
  78. },
  79. {
  80. label: 'بسته شده',
  81. value: 'CLOSED'
  82. }
  83. ]
  84. },
  85. priority: {
  86. infoKey: 'priority_info',
  87. enumListKey: 'priorityEnums',
  88. enums: [
  89. {
  90. label: 'بالا',
  91. value: 'HIGH'
  92. }
  93. ]
  94. }
  95. })
  96. }
  97. }
  98. class NoticeList extends Collection {
  99. model () {
  100. return Notice
  101. }
  102. }
  103. export { Notice, NoticeList }