laporan.model.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. module.exports = mongoose.model(
  7. 'Laporan',
  8. new Schema(
  9. {
  10. no_laporan: { type: String, unique: true },
  11. user: { type: Types.ObjectId, ref: user },
  12. sanksi: { type: Types.ObjectId },
  13. pt: Object,
  14. keterangan: String,
  15. pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
  16. alasan_delegasi: String,
  17. level: { type: Number, enum: [1, 2, 3] },
  18. role_asal: {
  19. type: String,
  20. enum: ['dikti', 'lldikti'],
  21. default: 'dikti',
  22. },
  23. role_data: {
  24. type: String,
  25. enum: ['dikti', 'lldikti'],
  26. default: 'dikti',
  27. },
  28. aktif: { type: Boolean, default: true },
  29. dokumen: [
  30. {
  31. type: Types.ObjectId,
  32. ref: dokumen,
  33. },
  34. ],
  35. jadwal: {
  36. judul: String,
  37. dari_tanggal: Date,
  38. sampai_tanggal: Date,
  39. warna: String,
  40. },
  41. evaluasi: [
  42. new Schema(
  43. {
  44. dari: { type: Types.ObjectId, ref: user },
  45. judul: String,
  46. tanggal: Date,
  47. dokumen: [
  48. {
  49. type: Types.ObjectId,
  50. ref: dokumen,
  51. },
  52. ],
  53. },
  54. {
  55. timestamps: true,
  56. }
  57. ),
  58. ],
  59. },
  60. {
  61. timestamps: true,
  62. }
  63. ),
  64. 'laporan'
  65. )