laporan.model.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. level: { type: Number, enum: [1, 2, 3] },
  17. role_asal: {
  18. type: String,
  19. enum: ['dikti', 'lldikti'],
  20. default: 'dikti',
  21. },
  22. role_data: {
  23. type: String,
  24. enum: ['dikti', 'lldikti'],
  25. default: 'dikti',
  26. },
  27. aktif: { type: Boolean, default: true },
  28. dokumen: [
  29. {
  30. type: Types.ObjectId,
  31. ref: dokumen,
  32. },
  33. ],
  34. jadwal: {
  35. judul: String,
  36. dari_tanggal: Date,
  37. sampai_tanggal: Date,
  38. warna: String,
  39. },
  40. evaluasi: [
  41. new Schema(
  42. {
  43. judul: String,
  44. tanggal: Date,
  45. dokumen: [
  46. {
  47. type: Types.ObjectId,
  48. ref: dokumen,
  49. },
  50. ],
  51. },
  52. {
  53. timestamps: true,
  54. }
  55. ),
  56. ],
  57. },
  58. {
  59. timestamps: true,
  60. }
  61. ),
  62. 'laporan'
  63. )