sanksi.model.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. keberatan: new Schema(
  70. {
  71. dokumen: [
  72. {
  73. type: Types.ObjectId,
  74. ref: dokumen,
  75. },
  76. ],
  77. },
  78. { timestamps: true }
  79. ),
  80. banding: new Schema(
  81. {
  82. dokumen: [
  83. {
  84. type: Types.ObjectId,
  85. ref: dokumen,
  86. },
  87. ],
  88. },
  89. { timestamps: true }
  90. ),
  91. cabut_sanksi: new Schema(
  92. {
  93. dokumen: [
  94. {
  95. type: Types.ObjectId,
  96. ref: dokumen,
  97. },
  98. ],
  99. },
  100. { timestamps: true }
  101. ),
  102. perbaikan: new Schema(
  103. {
  104. keterangan: String,
  105. dokumen: [
  106. {
  107. type: Types.ObjectId,
  108. ref: dokumen,
  109. },
  110. ],
  111. },
  112. { timestamps: true }
  113. ),
  114. },
  115. { timestamps: true }
  116. ),
  117. 'sanksi'
  118. )