const mongoose = require('mongoose') const { Schema, Types } = mongoose const 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' )