sanksi.model.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. const mongoose = require('mongoose')
  2. const { Schema, Types } = mongoose
  3. const dokumen = require('./dokumen.model')
  4. const laporan = require('./laporan.model')
  5. const user = require('./user.model')
  6. const pelanggaran = require('./pelanggaran.model')
  7. module.exports = mongoose.model(
  8. 'Sanksi',
  9. new Schema(
  10. {
  11. no_sanksi: String,
  12. laporan: { type: Types.ObjectId, unique: true, ref: laporan },
  13. pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
  14. keterangan: String,
  15. aktif: { type: Boolean, default: true },
  16. dokumen: [
  17. {
  18. type: Types.ObjectId,
  19. ref: dokumen,
  20. },
  21. ],
  22. batas_waktu: {
  23. keberatan: Date,
  24. jawaban_keberatan: Date,
  25. banding: Date,
  26. jawaban_banding: Date,
  27. },
  28. jawaban: {
  29. keberatan: new Schema(
  30. {
  31. status: String,
  32. keterangan: String,
  33. dokumen: [
  34. {
  35. type: Types.ObjectId,
  36. ref: dokumen,
  37. },
  38. ],
  39. },
  40. { timestamps: true }
  41. ),
  42. banding: new Schema(
  43. {
  44. status: String,
  45. keterangan: String,
  46. dokumen: [
  47. {
  48. type: Types.ObjectId,
  49. ref: dokumen,
  50. },
  51. ],
  52. },
  53. { timestamps: true }
  54. ),
  55. cabut_sanksi: new Schema(
  56. {
  57. status: String,
  58. keterangan: String,
  59. dokumen: [
  60. {
  61. type: Types.ObjectId,
  62. ref: dokumen,
  63. },
  64. ],
  65. },
  66. { timestamps: true }
  67. ),
  68. },
  69. pengajuan: {
  70. keberatan: new Schema(
  71. {
  72. dokumen: [
  73. {
  74. type: Types.ObjectId,
  75. ref: dokumen,
  76. },
  77. ],
  78. },
  79. { timestamps: true }
  80. ),
  81. banding: new Schema(
  82. {
  83. dokumen: [
  84. {
  85. type: Types.ObjectId,
  86. ref: dokumen,
  87. },
  88. ],
  89. },
  90. { timestamps: true }
  91. ),
  92. cabut_sanksi: new Schema(
  93. {
  94. dokumen: [
  95. {
  96. type: Types.ObjectId,
  97. ref: dokumen,
  98. },
  99. ],
  100. },
  101. { timestamps: true }
  102. ),
  103. },
  104. perbaikan: new Schema(
  105. {
  106. keterangan: String,
  107. dokumen: [
  108. {
  109. type: Types.ObjectId,
  110. ref: dokumen,
  111. },
  112. ],
  113. },
  114. { timestamps: true }
  115. ),
  116. },
  117. { timestamps: true }
  118. ),
  119. 'sanksi'
  120. )