laporan.model.js 1.6 KB

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