| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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'
- )
|