| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | const mongoose = require('mongoose')const { Schema, Types } = mongooseconst user = require('./user.model')const dokumen = require('./dokumen.model')const pelanggaran = require('./pelanggaran.model')const sanksi = require('./sanksi2.model')module.exports = mongoose.model(  'Laporan',  new Schema(    {      no_laporan: { type: String, unique: true },      user: { type: Types.ObjectId, ref: user },      sanksi: { type: Types.ObjectId, ref: sanksi },      pt: Object,      keterangan: String,      pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],      alasan_delegasi: String,      level: { type: Number, enum: [1, 2, 3] },      flag: String,      role_asal: {        type: String,        enum: ['dikti', 'lldikti'],        default: 'dikti',      },      role_data: {        type: String,        enum: ['dikti', 'lldikti'],        default: 'dikti',      },      sebelum_ditutup: {        step: [String],      },      step: [{type: String, enum: ['pelaporan', 'penjadwalan', 'pemeriksaan', 'sanksi', 'ditutup', 'delegasi', 'selesai', 'cabut_sanksi', 'keberatan', 'banding'] }],      aktif: { type: Boolean, default: true },      tuntas: {        keterangan: String,        dokumen: [          {            type: Types.ObjectId,            ref: dokumen,          },        ],      },      dokumen: [        {          type: Types.ObjectId,          ref: dokumen,        },      ],      jadwal: {        judul: String,        dari_tanggal: Date,        sampai_tanggal: Date,        warna: String,      },      berita_acara: {        type: Object      },      peserta_penetapan_sanksi: [        new Schema(          {            nama: String,            ttd: {              type: Types.ObjectId,              ref: dokumen,            },          },          {            timestamps: true          }        )      ],      evaluasi: [        new Schema(          {            dari: { type: Types.ObjectId, ref: user },            judul: String,            tanggal: Date,            dokumen: [              {                type: Types.ObjectId,                ref: dokumen,              },            ],          },          {            timestamps: true,          }        ),      ],    },    {      timestamps: true,    }  ),  'laporan')
 |