laporan.model.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. judul: String,
  45. tanggal: Date,
  46. dokumen: [
  47. {
  48. type: Types.ObjectId,
  49. ref: dokumen,
  50. },
  51. ],
  52. },
  53. {
  54. timestamps: true,
  55. }
  56. ),
  57. ],
  58. },
  59. {
  60. timestamps: true,
  61. }
  62. ),
  63. 'laporan'
  64. )