laporan.model.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const mongoose = require('mongoose')
  2. const { Schema, Types } = mongoose
  3. const user = require('./user.model')
  4. const dokumen = require('./dokumen.model')
  5. const pelanggaran = require('./pelanggaran.model')
  6. const sanksi = require('./sanksi2.model')
  7. module.exports = mongoose.model(
  8. 'Laporan',
  9. new Schema(
  10. {
  11. no_laporan: { type: String, unique: true },
  12. user: { type: Types.ObjectId, ref: user },
  13. sanksi: { type: Types.ObjectId, ref: sanksi },
  14. pt: Object,
  15. keterangan: String,
  16. pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
  17. alasan_delegasi: String,
  18. level: { type: Number, enum: [1, 2, 3] },
  19. flag: String,
  20. role_asal: {
  21. type: String,
  22. enum: ['dikti', 'lldikti'],
  23. default: 'dikti',
  24. },
  25. role_data: {
  26. type: String,
  27. enum: ['dikti', 'lldikti'],
  28. default: 'dikti',
  29. },
  30. sebelum_ditutup: {
  31. step: [String],
  32. },
  33. step: [{type: String, enum: ['pelaporan', 'penjadwalan', 'pemeriksaan', 'sanksi', 'ditutup', 'delegasi', 'selesai', 'cabut_sanksi', 'keberatan', 'banding'] }],
  34. aktif: { type: Boolean, default: true },
  35. tuntas: {
  36. keterangan: String,
  37. dokumen: [
  38. {
  39. type: Types.ObjectId,
  40. ref: dokumen,
  41. },
  42. ],
  43. },
  44. dokumen: [
  45. {
  46. type: Types.ObjectId,
  47. ref: dokumen,
  48. },
  49. ],
  50. jadwal: {
  51. judul: String,
  52. dari_tanggal: Date,
  53. sampai_tanggal: Date,
  54. warna: String,
  55. },
  56. berita_acara: {
  57. type: Object
  58. },
  59. peserta_penetapan_sanksi: [
  60. new Schema(
  61. {
  62. nama: String,
  63. ttd: {
  64. type: Types.ObjectId,
  65. ref: dokumen,
  66. },
  67. },
  68. {
  69. timestamps: true
  70. }
  71. )
  72. ],
  73. evaluasi: [
  74. new Schema(
  75. {
  76. dari: { type: Types.ObjectId, ref: user },
  77. judul: String,
  78. tanggal: Date,
  79. dokumen: [
  80. {
  81. type: Types.ObjectId,
  82. ref: dokumen,
  83. },
  84. ],
  85. },
  86. {
  87. timestamps: true,
  88. }
  89. ),
  90. ],
  91. },
  92. {
  93. timestamps: true,
  94. }
  95. ),
  96. 'laporan'
  97. )