sanksi.model.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. pt: Object,
  14. pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
  15. keterangan: String,
  16. aktif: { type: Boolean, default: true },
  17. dokumen: [
  18. {
  19. type: Types.ObjectId,
  20. ref: dokumen,
  21. },
  22. ],
  23. batas_waktu: {
  24. keberatan: Date,
  25. jawaban_keberatan: Date,
  26. banding: Date,
  27. jawaban_banding: Date,
  28. },
  29. jawaban: {
  30. keberatan: new Schema(
  31. {
  32. status: String,
  33. keterangan: String,
  34. dokumen: [
  35. {
  36. type: Types.ObjectId,
  37. ref: dokumen,
  38. },
  39. ],
  40. },
  41. { timestamps: true }
  42. ),
  43. banding: new Schema(
  44. {
  45. status: String,
  46. keterangan: String,
  47. dokumen: [
  48. {
  49. type: Types.ObjectId,
  50. ref: dokumen,
  51. },
  52. ],
  53. },
  54. { timestamps: true }
  55. ),
  56. cabut_sanksi: new Schema(
  57. {
  58. status: String,
  59. keterangan: String,
  60. dokumen: [
  61. {
  62. type: Types.ObjectId,
  63. ref: dokumen,
  64. },
  65. ],
  66. },
  67. { timestamps: true }
  68. ),
  69. },
  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. perbaikan: new Schema(
  104. {
  105. keterangan: String,
  106. dokumen: [
  107. {
  108. type: Types.ObjectId,
  109. ref: dokumen,
  110. },
  111. ],
  112. },
  113. { timestamps: true }
  114. ),
  115. },
  116. { timestamps: true }
  117. ),
  118. 'sanksi'
  119. )