sanksi2.model.js 3.2 KB

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