unipo-ui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/index.mjs +53 -4
- package/dist/admisi-YCOE3DMH.cjs +20 -0
- package/dist/admisi-YXCTBECZ.js +11 -0
- package/dist/akademik-PJGL6MSP.cjs +20 -0
- package/dist/akademik-TPDFEZGF.js +11 -0
- package/dist/akses-AUPQD6YN.cjs +20 -0
- package/dist/akses-V5XIMBWT.js +11 -0
- package/dist/arsip-2T7IEION.cjs +20 -0
- package/dist/arsip-LDRV7FYX.js +11 -0
- package/dist/cbt-4N6COVIN.js +11 -0
- package/dist/cbt-GMQSR7TP.cjs +20 -0
- package/dist/chunk-34OKV63Q.js +122 -0
- package/dist/chunk-34OKV63Q.js.map +1 -0
- package/dist/chunk-3O5ELKBH.cjs +18 -0
- package/dist/chunk-3O5ELKBH.cjs.map +1 -0
- package/dist/chunk-4BQOABRV.js +462 -0
- package/dist/chunk-4BQOABRV.js.map +1 -0
- package/dist/{chunk-DEF5CA7C.cjs → chunk-5VNCBW4R.cjs} +282 -1165
- package/dist/chunk-5VNCBW4R.cjs.map +1 -0
- package/dist/{chunk-SJ4DJOMZ.js → chunk-7AJ4LW5H.js} +163 -1019
- package/dist/chunk-7AJ4LW5H.js.map +1 -0
- package/dist/chunk-JASW45YF.cjs +510 -0
- package/dist/chunk-JASW45YF.cjs.map +1 -0
- package/dist/chunk-JSUHAYQ4.js +15 -0
- package/dist/chunk-JSUHAYQ4.js.map +1 -0
- package/dist/chunk-LN6HZMPI.js +1006 -0
- package/dist/chunk-LN6HZMPI.js.map +1 -0
- package/dist/chunk-LNJTDEQR.cjs +1937 -0
- package/dist/chunk-LNJTDEQR.cjs.map +1 -0
- package/dist/chunk-MKQEH7QS.cjs +1058 -0
- package/dist/chunk-MKQEH7QS.cjs.map +1 -0
- package/dist/chunk-TAKLMRU7.cjs +150 -0
- package/dist/chunk-TAKLMRU7.cjs.map +1 -0
- package/dist/chunk-TYCRRYCQ.js +1843 -0
- package/dist/chunk-TYCRRYCQ.js.map +1 -0
- package/dist/crm-C4XGSG6O.js +11 -0
- package/dist/crm-LTVCDNMK.cjs +20 -0
- package/dist/dasbor-OJLMSFTF.cjs +20 -0
- package/dist/dasbor-Y3UPFYFE.js +11 -0
- package/dist/edom-3GZUUB7H.cjs +20 -0
- package/dist/edom-K4Y2NV4K.js +11 -0
- package/dist/fakultas-DJRUVJBV.js +11 -0
- package/dist/fakultas-VVAQOPUX.cjs +20 -0
- package/dist/filter-D54KALbB.d.cts +436 -0
- package/dist/filter-D54KALbB.d.ts +436 -0
- package/dist/helpdesk-AWVC7BPE.cjs +20 -0
- package/dist/helpdesk-BAOXAU6G.js +11 -0
- package/dist/humas-7BMMJ3WF.js +11 -0
- package/dist/humas-H56JFUW6.cjs +20 -0
- package/dist/ikon.cjs +125 -0
- package/dist/ikon.cjs.map +1 -0
- package/dist/ikon.d.cts +140 -0
- package/dist/ikon.d.ts +140 -0
- package/dist/ikon.js +6 -0
- package/dist/ikon.js.map +1 -0
- package/dist/iku-7JLF2NIH.js +11 -0
- package/dist/iku-F47ZLMYJ.cjs +20 -0
- package/dist/index.cjs +544 -257
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +192 -2
- package/dist/index.d.ts +192 -2
- package/dist/index.js +126 -4
- package/dist/index.js.map +1 -1
- package/dist/induk-BGTGKRLL.js +11 -0
- package/dist/induk-DLYDMZAM.cjs +20 -0
- package/dist/integrasi-4VXNGA3V.cjs +20 -0
- package/dist/integrasi-IP3WWDO7.js +11 -0
- package/dist/kalender-DGQDGJCL.cjs +20 -0
- package/dist/kalender-FGGUBYKZ.js +11 -0
- package/dist/karier-H3HBFCQQ.js +11 -0
- package/dist/karier-QTU2P5YD.cjs +20 -0
- package/dist/katalog.cjs +1709 -0
- package/dist/katalog.cjs.map +1 -0
- package/dist/katalog.d.cts +645 -0
- package/dist/katalog.d.ts +645 -0
- package/dist/katalog.js +1626 -0
- package/dist/katalog.js.map +1 -0
- package/dist/kelulusan-BHFQM5N4.cjs +20 -0
- package/dist/kelulusan-ZR7CM6I5.js +11 -0
- package/dist/kemahasiswaan-EINWXAY7.cjs +20 -0
- package/dist/kemahasiswaan-NH2LEDH7.js +11 -0
- package/dist/kerjasama-FAOHZCML.js +11 -0
- package/dist/kerjasama-TXWJOU4Y.cjs +20 -0
- package/dist/keu-4TXF4FEP.cjs +20 -0
- package/dist/keu-SD7UOCDB.js +11 -0
- package/dist/kurikulum-SRO7TJYI.cjs +20 -0
- package/dist/kurikulum-XT7PZJOK.js +11 -0
- package/dist/layanan-RQ2AWCQ5.cjs +20 -0
- package/dist/layanan-Y6WUCSD2.js +11 -0
- package/dist/lms-5JYOSLBI.cjs +20 -0
- package/dist/lms-NTXMSHG2.js +11 -0
- package/dist/lppm-7DH7PRF3.cjs +20 -0
- package/dist/lppm-UXYGIOIF.js +11 -0
- package/dist/master-GKTTAKLF.cjs +20 -0
- package/dist/master-ZG4SPPDU.js +11 -0
- package/dist/mbkm-OGR72BTB.js +11 -0
- package/dist/mbkm-URKJHUIQ.cjs +20 -0
- package/dist/notifikasi-FMA26M4I.js +11 -0
- package/dist/notifikasi-QDCYIX7G.cjs +20 -0
- package/dist/pddikti-RJVYY2J4.cjs +20 -0
- package/dist/pddikti-VF2PXDKA.js +11 -0
- package/dist/{content-DaJPx5LX.d.cts → pemeliharaan-D5S-1lqW.d.ts} +38 -434
- package/dist/{content-DaJPx5LX.d.ts → pemeliharaan-Dr0HSxvZ.d.cts} +38 -434
- package/dist/perpustakaan-5RL33XG2.js +11 -0
- package/dist/perpustakaan-JXZW43MJ.cjs +20 -0
- package/dist/pilih-BEes_D3n.d.cts +205 -0
- package/dist/pilih-CEKqXMUS.d.ts +205 -0
- package/dist/pmb-EGTWW2ZH.cjs +20 -0
- package/dist/pmb-G7EAFJ3R.js +11 -0
- package/dist/portal-EI7TXN7H.cjs +20 -0
- package/dist/portal-MMUYX3RA.js +11 -0
- package/dist/portal-api-BJLO6AGI.js +11 -0
- package/dist/portal-api-Q6B3X6ZV.cjs +20 -0
- package/dist/profil-46FV46VH.cjs +20 -0
- package/dist/profil-4BIXIM6D.js +11 -0
- package/dist/referensi-HNYOJGNX.js +11 -0
- package/dist/referensi-VOT5BRCL.cjs +20 -0
- package/dist/registry.json +606 -4
- package/dist/repositori-2MJ43NXM.js +11 -0
- package/dist/repositori-KFXVJB7B.cjs +20 -0
- package/dist/rpl-2ZXHNSPF.js +11 -0
- package/dist/rpl-YF5MV2YA.cjs +20 -0
- package/dist/sarpras-CQ7QKVUN.js +11 -0
- package/dist/sarpras-XGPHHFCG.cjs +20 -0
- package/dist/scss/components/_animasi.scss +280 -0
- package/dist/scss/components/_ikon.scss +249 -0
- package/dist/scss/components/_katalog.scss +662 -0
- package/dist/scss/components/_platform.scss +364 -0
- package/dist/scss/index.scss +4 -0
- package/dist/sdm-N6LE66PP.cjs +20 -0
- package/dist/sdm-QKBXH3JF.js +11 -0
- package/dist/siakad.cjs +1389 -2915
- package/dist/siakad.cjs.map +1 -1
- package/dist/siakad.d.cts +31 -196
- package/dist/siakad.d.ts +31 -196
- package/dist/siakad.js +446 -2194
- package/dist/siakad.js.map +1 -1
- package/dist/spmi-J37NEYIU.js +11 -0
- package/dist/spmi-N6EU7KNC.cjs +20 -0
- package/dist/tracer-G6DDXVXC.cjs +20 -0
- package/dist/tracer-M3FTNWBG.js +11 -0
- package/dist/ui-unipo.css +1650 -0
- package/dist/ui-unipo.min.css +1 -1
- package/package.json +25 -3
- package/src/components/animasi.tsx +186 -0
- package/src/components/modal.tsx +113 -0
- package/src/components/overlays.tsx +6 -1
- package/src/components/pemeliharaan.tsx +152 -0
- package/src/components/platform.tsx +94 -0
- package/src/ikon/ilustrasi.tsx +283 -0
- package/src/ikon/index.ts +7 -0
- package/src/ikon/kotak.tsx +30 -0
- package/src/ikon/unipo.tsx +326 -0
- package/src/index.ts +8 -0
- package/src/katalog/aturan.ts +488 -0
- package/src/katalog/data/id.ts +749 -0
- package/src/katalog/data/indeks.json +1 -0
- package/src/katalog/data/muat.ts +47 -0
- package/src/katalog/ikon.tsx +11 -0
- package/src/katalog/index.ts +13 -0
- package/src/katalog/isian.tsx +372 -0
- package/src/katalog/katalog.tsx +138 -0
- package/src/katalog/kelola.tsx +620 -0
- package/src/katalog/modul.tsx +336 -0
- package/src/katalog/tampil.tsx +147 -0
- package/src/katalog/tipe.ts +141 -0
- package/src/katalog/wizard.tsx +155 -0
- package/src/lib/platform.ts +91 -0
- package/src/siakad/index.ts +1 -0
- package/src/siakad/pemeliharaan.tsx +118 -0
- package/src/siakad/provider.tsx +2 -0
- package/dist/chunk-DEF5CA7C.cjs.map +0 -1
- package/dist/chunk-SJ4DJOMZ.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
// src/katalog/data/modul/kemahasiswaan.json
|
|
7
|
+
var key = "kemahasiswaan";
|
|
8
|
+
var resources = [{ id: "/v1/kemahasiswaan/beasiswa", tag: "Kemahasiswaan: Beasiswa", title: "Program beasiswa", base: "/v1/kemahasiswaan/beasiswa", item: "/v1/kemahasiswaan/beasiswa/{id}", key: "id", list: "getKemahasiswaanBeasiswa", create: "postKemahasiswaanBeasiswa", get: "getKemahasiswaanBeasiswaById", update: "putKemahasiswaanBeasiswaById", del: "deleteKemahasiswaanBeasiswaById", actions: ["postKemahasiswaanBeasiswaByIdBuka", "postKemahasiswaanBeasiswaByIdSeleksi", "postKemahasiswaanBeasiswaByIdTetapkan", "postKemahasiswaanBeasiswaByIdSelesai"], children: ["/v1/kemahasiswaan/beasiswa/{id}/berkas"] }, { id: "/v1/kemahasiswaan/beasiswa/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", title: "Program beasiswa", base: "/v1/kemahasiswaan/beasiswa/{id}/berkas", item: "/v1/kemahasiswaan/beasiswa/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanBeasiswaByIdBerkas", create: "postKemahasiswaanBeasiswaByIdBerkas", get: "getKemahasiswaanBeasiswaByIdBerkasByUuid", del: "deleteKemahasiswaanBeasiswaByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/beasiswa" }, { id: "/v1/kemahasiswaan/kegiatan", tag: "Kemahasiswaan: Organisasi", title: "Kegiatan ormawa", base: "/v1/kemahasiswaan/kegiatan", item: "/v1/kemahasiswaan/kegiatan/{id}", key: "id", list: "getKemahasiswaanKegiatan", create: "postKemahasiswaanKegiatan", get: "getKemahasiswaanKegiatanById", update: "putKemahasiswaanKegiatanById", del: "deleteKemahasiswaanKegiatanById", actions: ["postKemahasiswaanKegiatanByIdAjukan", "postKemahasiswaanKegiatanByIdSetujui", "postKemahasiswaanKegiatanByIdTolak", "postKemahasiswaanKegiatanByIdAjukanLpj", "postKemahasiswaanKegiatanByIdTerimaLpj", "postKemahasiswaanKegiatanByIdKembalikanLpj"], children: ["/v1/kemahasiswaan/kegiatan/{id}/berkas"] }, { id: "/v1/kemahasiswaan/kegiatan/{id}/berkas", tag: "Kemahasiswaan: Organisasi", title: "Kegiatan ormawa", base: "/v1/kemahasiswaan/kegiatan/{id}/berkas", item: "/v1/kemahasiswaan/kegiatan/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanKegiatanByIdBerkas", create: "postKemahasiswaanKegiatanByIdBerkas", get: "getKemahasiswaanKegiatanByIdBerkasByUuid", del: "deleteKemahasiswaanKegiatanByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/kegiatan" }, { id: "/v1/kemahasiswaan/konseling", tag: "Kemahasiswaan: Konseling", title: "Konseling", base: "/v1/kemahasiswaan/konseling", item: "/v1/kemahasiswaan/konseling/{id}", key: "id", list: "getKemahasiswaanKonseling", create: "postKemahasiswaanKonseling", get: "getKemahasiswaanKonselingById", update: "putKemahasiswaanKonselingById", del: "deleteKemahasiswaanKonselingById", actions: ["postKemahasiswaanKonselingByIdJadwalkan", "postKemahasiswaanKonselingByIdSelesai", "postKemahasiswaanKonselingByIdBatalkan"], children: [] }, { id: "/v1/kemahasiswaan/ormawa", tag: "Kemahasiswaan: Organisasi", title: "Organisasi mahasiswa", base: "/v1/kemahasiswaan/ormawa", item: "/v1/kemahasiswaan/ormawa/{id}", key: "id", list: "getKemahasiswaanOrmawa", create: "postKemahasiswaanOrmawa", get: "getKemahasiswaanOrmawaById", update: "putKemahasiswaanOrmawaById", del: "deleteKemahasiswaanOrmawaById", actions: [], children: ["/v1/kemahasiswaan/ormawa/{id}/berkas"] }, { id: "/v1/kemahasiswaan/ormawa/{id}/berkas", tag: "Kemahasiswaan: Organisasi", title: "Organisasi mahasiswa", base: "/v1/kemahasiswaan/ormawa/{id}/berkas", item: "/v1/kemahasiswaan/ormawa/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanOrmawaByIdBerkas", create: "postKemahasiswaanOrmawaByIdBerkas", get: "getKemahasiswaanOrmawaByIdBerkasByUuid", del: "deleteKemahasiswaanOrmawaByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/ormawa" }, { id: "/v1/kemahasiswaan/pelanggaran", tag: "Kemahasiswaan: Pelanggaran", title: "Pelanggaran dan sanksi", base: "/v1/kemahasiswaan/pelanggaran", item: "/v1/kemahasiswaan/pelanggaran/{id}", key: "id", list: "getKemahasiswaanPelanggaran", create: "postKemahasiswaanPelanggaran", get: "getKemahasiswaanPelanggaranById", update: "putKemahasiswaanPelanggaranById", del: "deleteKemahasiswaanPelanggaranById", actions: [], children: ["/v1/kemahasiswaan/pelanggaran/{id}/berkas"] }, { id: "/v1/kemahasiswaan/pelanggaran/{id}/berkas", tag: "Kemahasiswaan: Pelanggaran", title: "Pelanggaran dan sanksi", base: "/v1/kemahasiswaan/pelanggaran/{id}/berkas", item: "/v1/kemahasiswaan/pelanggaran/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanPelanggaranByIdBerkas", create: "postKemahasiswaanPelanggaranByIdBerkas", get: "getKemahasiswaanPelanggaranByIdBerkasByUuid", del: "deleteKemahasiswaanPelanggaranByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/pelanggaran" }, { id: "/v1/kemahasiswaan/pencairan", tag: "Kemahasiswaan: Beasiswa", title: "Pencairan beasiswa", base: "/v1/kemahasiswaan/pencairan", item: "/v1/kemahasiswaan/pencairan/{id}", key: "id", list: "getKemahasiswaanPencairan", create: "postKemahasiswaanPencairan", get: "getKemahasiswaanPencairanById", update: "putKemahasiswaanPencairanById", del: "deleteKemahasiswaanPencairanById", actions: [], children: ["/v1/kemahasiswaan/pencairan/{id}/berkas"] }, { id: "/v1/kemahasiswaan/pencairan/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", title: "Pencairan beasiswa", base: "/v1/kemahasiswaan/pencairan/{id}/berkas", item: "/v1/kemahasiswaan/pencairan/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanPencairanByIdBerkas", create: "postKemahasiswaanPencairanByIdBerkas", get: "getKemahasiswaanPencairanByIdBerkasByUuid", del: "deleteKemahasiswaanPencairanByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/pencairan" }, { id: "/v1/kemahasiswaan/pendaftar", tag: "Kemahasiswaan: Beasiswa", title: "Pendaftar beasiswa", base: "/v1/kemahasiswaan/pendaftar", item: "/v1/kemahasiswaan/pendaftar/{id}", key: "id", list: "getKemahasiswaanPendaftar", create: "postKemahasiswaanPendaftar", get: "getKemahasiswaanPendaftarById", update: "putKemahasiswaanPendaftarById", del: "deleteKemahasiswaanPendaftarById", actions: ["postKemahasiswaanPendaftarByIdVerifikasi", "postKemahasiswaanPendaftarByIdTerima", "postKemahasiswaanPendaftarByIdTolak", "postKemahasiswaanPendaftarByIdCabut"], children: ["/v1/kemahasiswaan/pendaftar/{id}/berkas"] }, { id: "/v1/kemahasiswaan/pendaftar/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", title: "Pendaftar beasiswa", base: "/v1/kemahasiswaan/pendaftar/{id}/berkas", item: "/v1/kemahasiswaan/pendaftar/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanPendaftarByIdBerkas", create: "postKemahasiswaanPendaftarByIdBerkas", get: "getKemahasiswaanPendaftarByIdBerkasByUuid", del: "deleteKemahasiswaanPendaftarByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/pendaftar" }, { id: "/v1/kemahasiswaan/pengurus", tag: "Kemahasiswaan: Organisasi", title: "Pengurus organisasi", base: "/v1/kemahasiswaan/pengurus", item: "/v1/kemahasiswaan/pengurus/{id}", key: "id", list: "getKemahasiswaanPengurus", create: "postKemahasiswaanPengurus", get: "getKemahasiswaanPengurusById", update: "putKemahasiswaanPengurusById", del: "deleteKemahasiswaanPengurusById", actions: [], children: [] }, { id: "/v1/kemahasiswaan/prestasi", tag: "Kemahasiswaan: Prestasi", title: "Prestasi mahasiswa", base: "/v1/kemahasiswaan/prestasi", item: "/v1/kemahasiswaan/prestasi/{id}", key: "id", list: "getKemahasiswaanPrestasi", create: "postKemahasiswaanPrestasi", get: "getKemahasiswaanPrestasiById", update: "putKemahasiswaanPrestasiById", del: "deleteKemahasiswaanPrestasiById", actions: ["postKemahasiswaanPrestasiByIdVerifikasi", "postKemahasiswaanPrestasiByIdTolak"], children: ["/v1/kemahasiswaan/prestasi/{id}/berkas"] }, { id: "/v1/kemahasiswaan/prestasi/{id}/berkas", tag: "Kemahasiswaan: Prestasi", title: "Prestasi mahasiswa", base: "/v1/kemahasiswaan/prestasi/{id}/berkas", item: "/v1/kemahasiswaan/prestasi/{id}/berkas/{uuid}", key: "uuid", list: "getKemahasiswaanPrestasiByIdBerkas", create: "postKemahasiswaanPrestasiByIdBerkas", get: "getKemahasiswaanPrestasiByIdBerkasByUuid", del: "deleteKemahasiswaanPrestasiByIdBerkasByUuid", actions: [], children: [], parent: "/v1/kemahasiswaan/prestasi" }];
|
|
9
|
+
var ops = { getKemahasiswaanBeasiswa: { id: "getKemahasiswaanBeasiswa", m: "GET", path: "/v1/kemahasiswaan/beasiswa", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: daftar", ds: "Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status buka/seleksi/berjalan/selesai).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "jenis", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "mitra_id", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tahun_id", in: "query", s: { t: "string", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "periode_pencairan", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nama, kode, penyelenggara" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanBeasiswa" }, postKemahasiswaanBeasiswa: { id: "postKemahasiswaanBeasiswa", m: "POST", path: "/v1/kemahasiswaan/beasiswa", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: tambah", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", b: { ct: "application/json", ref: "KemahasiswaanBeasiswaInput", s: { t: "object", pr: { kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 200 }, jenis: { t: "string", e: ["kip_kuliah", "prestasi", "ekonomi", "yayasan", "pemerintah_daerah", "swasta", "lainnya"] }, penyelenggara: { t: "string", max: 150 }, mitra_id: { t: "integer", ds: "ID di kerjasama_mitra", rf: { l: "/v1/kerjasama/mitra", k: "id", d: "/v1/kerjasama/mitra/{id}" } }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, nominal: { t: "number" }, periode_pencairan: { t: "string", e: ["sekali", "bulanan", "semester", "tahunan"], d: "semester" }, kuota: { t: "integer", min: 1, mx: 1e5 }, ipk_minimal: { t: "number" }, semester_minimal: { t: "integer", min: 1, mx: 14 }, semester_maksimal: { t: "integer", min: 1, mx: 14 }, syarat: { t: "string" }, daftar_mulai: { t: "string", f: "date" }, daftar_selesai: { t: "string", f: "date" } }, rq: ["kode", "nama", "jenis", "tahun_id"] }, rq: 1 }, r: "object", it: "KemahasiswaanBeasiswa" }, getKemahasiswaanBeasiswaById: { id: "getKemahasiswaanBeasiswaById", m: "GET", path: "/v1/kemahasiswaan/beasiswa/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: detail", ds: "Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status buka/seleksi/berjalan/selesai).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanBeasiswa" }, putKemahasiswaanBeasiswaById: { id: "putKemahasiswaanBeasiswaById", m: "PUT", path: "/v1/kemahasiswaan/beasiswa/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: ubah", ds: "Pengelola modul. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanBeasiswaInput", s: { t: "object", pr: { kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 200 }, jenis: { t: "string", e: ["kip_kuliah", "prestasi", "ekonomi", "yayasan", "pemerintah_daerah", "swasta", "lainnya"] }, penyelenggara: { t: "string", max: 150 }, mitra_id: { t: "integer", ds: "ID di kerjasama_mitra", rf: { l: "/v1/kerjasama/mitra", k: "id", d: "/v1/kerjasama/mitra/{id}" } }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, nominal: { t: "number" }, periode_pencairan: { t: "string", e: ["sekali", "bulanan", "semester", "tahunan"], d: "semester" }, kuota: { t: "integer", min: 1, mx: 1e5 }, ipk_minimal: { t: "number" }, semester_minimal: { t: "integer", min: 1, mx: 14 }, semester_maksimal: { t: "integer", min: 1, mx: 14 }, syarat: { t: "string" }, daftar_mulai: { t: "string", f: "date" }, daftar_selesai: { t: "string", f: "date" } }, rq: ["kode", "nama", "jenis", "tahun_id"] }, rq: 1 }, r: "object", it: "KemahasiswaanBeasiswa" }, deleteKemahasiswaanBeasiswaById: { id: "deleteKemahasiswaanBeasiswaById", m: "DELETE", path: "/v1/kemahasiswaan/beasiswa/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: hapus", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanBeasiswaByIdBerkas: { id: "getKemahasiswaanBeasiswaByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/beasiswa/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanBeasiswaByIdBerkas: { id: "postKemahasiswaanBeasiswaByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/beasiswa/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola modul.', sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanBeasiswaByIdBerkasByUuid: { id: "getKemahasiswaanBeasiswaByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/beasiswa/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanBeasiswaByIdBerkasByUuid: { id: "deleteKemahasiswaanBeasiswaByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/beasiswa/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: hapus lampiran", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, postKemahasiswaanBeasiswaByIdBuka: { id: "postKemahasiswaanBeasiswaByIdBuka", m: "POST", path: "/v1/kemahasiswaan/beasiswa/{id}/buka", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: Buka pendaftaran", ds: "Pengelola modul. Status harus draf, menjadi buka.", sc: ["kemahasiswaan:write"], tr: { dari: ["draf"], ke: "buka" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanBeasiswa" }, postKemahasiswaanBeasiswaByIdSeleksi: { id: "postKemahasiswaanBeasiswaByIdSeleksi", m: "POST", path: "/v1/kemahasiswaan/beasiswa/{id}/seleksi", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: Tutup pendaftaran dan mulai seleksi", ds: "Pengelola modul. Status harus buka, menjadi seleksi.", sc: ["kemahasiswaan:write"], tr: { dari: ["buka"], ke: "seleksi" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanBeasiswa" }, postKemahasiswaanBeasiswaByIdTetapkan: { id: "postKemahasiswaanBeasiswaByIdTetapkan", m: "POST", path: "/v1/kemahasiswaan/beasiswa/{id}/tetapkan", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: Tetapkan penerima (mulai berjalan)", ds: "Pengelola modul. Status harus seleksi, menjadi berjalan.", sc: ["kemahasiswaan:write"], tr: { dari: ["seleksi"], ke: "berjalan" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanBeasiswa" }, postKemahasiswaanBeasiswaByIdSelesai: { id: "postKemahasiswaanBeasiswaByIdSelesai", m: "POST", path: "/v1/kemahasiswaan/beasiswa/{id}/selesai", tag: "Kemahasiswaan: Beasiswa", sum: "Program beasiswa: Selesaikan", ds: "Pengelola modul. Status harus berjalan, menjadi selesai.", sc: ["kemahasiswaan:write"], tr: { dari: ["berjalan"], ke: "selesai" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanBeasiswa" }, getKemahasiswaanPendaftar: { id: "getKemahasiswaanPendaftar", m: "GET", path: "/v1/kemahasiswaan/pendaftar", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: daftar", ds: "Mahasiswa mendaftar sendiri saat program berstatus buka; dicek prodi, kuota, semester, dan IPK minimal bila ipk diisi pengelola. Lampirkan berkas syarat lewat /berkas. Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "beasiswa_id", in: "query", s: { t: "string", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nim" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanPendaftar" }, postKemahasiswaanPendaftar: { id: "postKemahasiswaanPendaftar", m: "POST", path: "/v1/kemahasiswaan/pendaftar", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: tambah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.", sc: ["kemahasiswaan:write"], b: { ct: "application/json", ref: "KemahasiswaanPendaftarInput", s: { t: "object", pr: { beasiswa_id: { t: "integer", ds: "ID di kmhs_beasiswa", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ipk: { t: "number", ds: "(hanya pengelola)" }, semester: { t: "integer", min: 1, mx: 14 }, penghasilan_ortu: { t: "number" }, alasan: { t: "string" }, skor: { t: "number", ds: "(hanya pengelola)" }, catatan: { t: "string", ds: "(hanya pengelola)" } }, rq: ["beasiswa_id", "nim"] }, rq: 1 }, r: "object", it: "KemahasiswaanPendaftar" }, getKemahasiswaanPendaftarById: { id: "getKemahasiswaanPendaftarById", m: "GET", path: "/v1/kemahasiswaan/pendaftar/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: detail", ds: "Mahasiswa mendaftar sendiri saat program berstatus buka; dicek prodi, kuota, semester, dan IPK minimal bila ipk diisi pengelola. Lampirkan berkas syarat lewat /berkas. Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPendaftar" }, putKemahasiswaanPendaftarById: { id: "putKemahasiswaanPendaftarById", m: "PUT", path: "/v1/kemahasiswaan/pendaftar/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: ubah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPendaftarInput", s: { t: "object", pr: { beasiswa_id: { t: "integer", ds: "ID di kmhs_beasiswa", rf: { l: "/v1/kemahasiswaan/beasiswa", k: "id", d: "/v1/kemahasiswaan/beasiswa/{id}" } }, nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ipk: { t: "number", ds: "(hanya pengelola)" }, semester: { t: "integer", min: 1, mx: 14 }, penghasilan_ortu: { t: "number" }, alasan: { t: "string" }, skor: { t: "number", ds: "(hanya pengelola)" }, catatan: { t: "string", ds: "(hanya pengelola)" } }, rq: ["beasiswa_id", "nim"] }, rq: 1 }, r: "object", it: "KemahasiswaanPendaftar" }, deleteKemahasiswaanPendaftarById: { id: "deleteKemahasiswaanPendaftarById", m: "DELETE", path: "/v1/kemahasiswaan/pendaftar/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: hapus", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanPendaftarByIdBerkas: { id: "getKemahasiswaanPendaftarByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/pendaftar/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanPendaftarByIdBerkas: { id: "postKemahasiswaanPendaftarByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/pendaftar/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.', sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanPendaftarByIdBerkasByUuid: { id: "getKemahasiswaanPendaftarByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/pendaftar/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanPendaftarByIdBerkasByUuid: { id: "deleteKemahasiswaanPendaftarByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/pendaftar/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: hapus lampiran", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, postKemahasiswaanPendaftarByIdVerifikasi: { id: "postKemahasiswaanPendaftarByIdVerifikasi", m: "POST", path: "/v1/kemahasiswaan/pendaftar/{id}/verifikasi", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: Berkas lengkap", ds: "Pengelola modul. Status harus diajukan, menjadi diverifikasi.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan"], ke: "diverifikasi" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPendaftarVerifikasiInput", s: { t: "object", pr: { skor: { t: "number" }, ipk: { t: "number" } } }, rq: 1 }, r: "object", it: "KemahasiswaanPendaftar" }, postKemahasiswaanPendaftarByIdTerima: { id: "postKemahasiswaanPendaftarByIdTerima", m: "POST", path: "/v1/kemahasiswaan/pendaftar/{id}/terima", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: Terima", ds: "Pengelola modul. Status harus diajukan/diverifikasi, menjadi diterima.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan", "diverifikasi"], ke: "diterima" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPendaftar" }, postKemahasiswaanPendaftarByIdTolak: { id: "postKemahasiswaanPendaftarByIdTolak", m: "POST", path: "/v1/kemahasiswaan/pendaftar/{id}/tolak", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: Tolak", ds: "Pengelola modul. Status harus diajukan/diverifikasi, menjadi ditolak.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan", "diverifikasi"], ke: "ditolak" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPendaftarTolakInput", s: { t: "object", pr: { alasan: { t: "string", max: 500 } }, rq: ["alasan"] }, rq: 1 }, r: "object", it: "KemahasiswaanPendaftar" }, postKemahasiswaanPendaftarByIdCabut: { id: "postKemahasiswaanPendaftarByIdCabut", m: "POST", path: "/v1/kemahasiswaan/pendaftar/{id}/cabut", tag: "Kemahasiswaan: Beasiswa", sum: "Pendaftar beasiswa: Cabut beasiswa", ds: "Pengelola modul. Status harus diterima, menjadi dicabut.", sc: ["kemahasiswaan:write"], tr: { dari: ["diterima"], ke: "dicabut" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPendaftarCabutInput", s: { t: "object", pr: { alasan: { t: "string", max: 500 } }, rq: ["alasan"] }, rq: 1 }, r: "object", it: "KemahasiswaanPendaftar" }, getKemahasiswaanPencairan: { id: "getKemahasiswaanPencairan", m: "GET", path: "/v1/kemahasiswaan/pencairan", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: daftar", ds: "Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "pendaftar_id", in: "query", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pendaftar", k: "id", d: "/v1/kemahasiswaan/pendaftar/{id}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tahun_id", in: "query", s: { t: "string", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "cara", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanPencairan" }, postKemahasiswaanPencairan: { id: "postKemahasiswaanPencairan", m: "POST", path: "/v1/kemahasiswaan/pencairan", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: tambah", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", b: { ct: "application/json", ref: "KemahasiswaanPencairanInput", s: { t: "object", pr: { pendaftar_id: { t: "integer", ds: "ID di kmhs_beasiswa_pendaftar" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, tanggal: { t: "string", f: "date" }, nominal: { t: "number" }, cara: { t: "string", e: ["transfer", "potong_ukt", "tunai", "lainnya"], d: "transfer" }, status: { t: "string", e: ["rencana", "dicairkan", "gagal"], d: "rencana" }, keterangan: { t: "string", max: 255 } }, rq: ["pendaftar_id", "nominal"] }, rq: 1 }, r: "object", it: "KemahasiswaanPencairan" }, getKemahasiswaanPencairanById: { id: "getKemahasiswaanPencairanById", m: "GET", path: "/v1/kemahasiswaan/pencairan/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: detail", ds: "Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPencairan" }, putKemahasiswaanPencairanById: { id: "putKemahasiswaanPencairanById", m: "PUT", path: "/v1/kemahasiswaan/pencairan/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: ubah", ds: "Pengelola modul. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPencairanInput", s: { t: "object", pr: { pendaftar_id: { t: "integer", ds: "ID di kmhs_beasiswa_pendaftar" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, tanggal: { t: "string", f: "date" }, nominal: { t: "number" }, cara: { t: "string", e: ["transfer", "potong_ukt", "tunai", "lainnya"], d: "transfer" }, status: { t: "string", e: ["rencana", "dicairkan", "gagal"], d: "rencana" }, keterangan: { t: "string", max: 255 } }, rq: ["pendaftar_id", "nominal"] }, rq: 1 }, r: "object", it: "KemahasiswaanPencairan" }, deleteKemahasiswaanPencairanById: { id: "deleteKemahasiswaanPencairanById", m: "DELETE", path: "/v1/kemahasiswaan/pencairan/{id}", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: hapus", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanPencairanByIdBerkas: { id: "getKemahasiswaanPencairanByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/pencairan/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanPencairanByIdBerkas: { id: "postKemahasiswaanPencairanByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/pencairan/{id}/berkas", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola modul.', sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanPencairanByIdBerkasByUuid: { id: "getKemahasiswaanPencairanByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/pencairan/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanPencairanByIdBerkasByUuid: { id: "deleteKemahasiswaanPencairanByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/pencairan/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Beasiswa", sum: "Pencairan beasiswa: hapus lampiran", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pencairan", k: "id", d: "/v1/kemahasiswaan/pencairan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, getKemahasiswaanOrmawa: { id: "getKemahasiswaanOrmawa", m: "GET", path: "/v1/kemahasiswaan/ormawa", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: daftar", ds: "Semua pemilik token ber-scope kemahasiswaan:read.", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "jenis", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "unit_id", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "pembina_nidn", in: "query", s: { t: "string", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "aktif", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nama, kode, bidang" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanOrmawa" }, postKemahasiswaanOrmawa: { id: "postKemahasiswaanOrmawa", m: "POST", path: "/v1/kemahasiswaan/ormawa", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: tambah", ds: "Pengelola modul (peran ber-unit hanya untuk unitnya).", sc: ["kemahasiswaan:write"], b: { ct: "application/json", ref: "KemahasiswaanOrmawaInput", s: { t: "object", pr: { kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 150 }, jenis: { t: "string", e: ["bem", "dpm", "hima", "ukm", "komunitas", "lainnya"] }, bidang: { t: "string", max: 100 }, unit_id: { t: "integer", ds: "ID di induk_unit", rf: { l: "/v1/induk/unit", k: "id", d: "/v1/induk/unit/{id}" } }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, pembina_nidn: { t: "string", ds: "m_dosen.NIDN", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, deskripsi: { t: "string" }, email: { t: "string", f: "email" }, instagram: { t: "string", max: 100 }, nomor_sk: { t: "string", max: 100 }, aktif: { t: "boolean", d: "1" } }, rq: ["kode", "nama", "jenis"] }, rq: 1 }, r: "object", it: "KemahasiswaanOrmawa" }, getKemahasiswaanOrmawaById: { id: "getKemahasiswaanOrmawaById", m: "GET", path: "/v1/kemahasiswaan/ormawa/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: detail", ds: "Semua pemilik token ber-scope kemahasiswaan:read.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanOrmawa" }, putKemahasiswaanOrmawaById: { id: "putKemahasiswaanOrmawaById", m: "PUT", path: "/v1/kemahasiswaan/ormawa/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: ubah", ds: "Pengelola modul (peran ber-unit hanya untuk unitnya). Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanOrmawaInput", s: { t: "object", pr: { kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 150 }, jenis: { t: "string", e: ["bem", "dpm", "hima", "ukm", "komunitas", "lainnya"] }, bidang: { t: "string", max: 100 }, unit_id: { t: "integer", ds: "ID di induk_unit", rf: { l: "/v1/induk/unit", k: "id", d: "/v1/induk/unit/{id}" } }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, pembina_nidn: { t: "string", ds: "m_dosen.NIDN", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, deskripsi: { t: "string" }, email: { t: "string", f: "email" }, instagram: { t: "string", max: 100 }, nomor_sk: { t: "string", max: 100 }, aktif: { t: "boolean", d: "1" } }, rq: ["kode", "nama", "jenis"] }, rq: 1 }, r: "object", it: "KemahasiswaanOrmawa" }, deleteKemahasiswaanOrmawaById: { id: "deleteKemahasiswaanOrmawaById", m: "DELETE", path: "/v1/kemahasiswaan/ormawa/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: hapus", ds: "Pengelola modul (peran ber-unit hanya untuk unitnya).", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanOrmawaByIdBerkas: { id: "getKemahasiswaanOrmawaByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/ormawa/{id}/berkas", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanOrmawaByIdBerkas: { id: "postKemahasiswaanOrmawaByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/ormawa/{id}/berkas", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola modul (peran ber-unit hanya untuk unitnya).', sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanOrmawaByIdBerkasByUuid: { id: "getKemahasiswaanOrmawaByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/ormawa/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanOrmawaByIdBerkasByUuid: { id: "deleteKemahasiswaanOrmawaByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/ormawa/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Organisasi", sum: "Organisasi mahasiswa: hapus lampiran", ds: "Pengelola modul (peran ber-unit hanya untuk unitnya).", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, getKemahasiswaanPengurus: { id: "getKemahasiswaanPengurus", m: "GET", path: "/v1/kemahasiswaan/pengurus", tag: "Kemahasiswaan: Organisasi", sum: "Pengurus organisasi: daftar", ds: "Semua pemilik token ber-scope kemahasiswaan:read.", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "ormawa_id", in: "query", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "inti", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "aktif", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanPengurus" }, postKemahasiswaanPengurus: { id: "postKemahasiswaanPengurus", m: "POST", path: "/v1/kemahasiswaan/pengurus", tag: "Kemahasiswaan: Organisasi", sum: "Pengurus organisasi: tambah", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", b: { ct: "application/json", ref: "KemahasiswaanPengurusInput", s: { t: "object", pr: { ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, jabatan: { t: "string", max: 100 }, inti: { t: "boolean", d: "0" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, aktif: { t: "boolean", d: "1" } }, rq: ["ormawa_id", "nim", "jabatan", "mulai"] }, rq: 1 }, r: "object", it: "KemahasiswaanPengurus" }, getKemahasiswaanPengurusById: { id: "getKemahasiswaanPengurusById", m: "GET", path: "/v1/kemahasiswaan/pengurus/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Pengurus organisasi: detail", ds: "Semua pemilik token ber-scope kemahasiswaan:read.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pengurus", k: "id", d: "/v1/kemahasiswaan/pengurus/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPengurus" }, putKemahasiswaanPengurusById: { id: "putKemahasiswaanPengurusById", m: "PUT", path: "/v1/kemahasiswaan/pengurus/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Pengurus organisasi: ubah", ds: "Pengelola modul. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pengurus", k: "id", d: "/v1/kemahasiswaan/pengurus/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPengurusInput", s: { t: "object", pr: { ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, jabatan: { t: "string", max: 100 }, inti: { t: "boolean", d: "0" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, aktif: { t: "boolean", d: "1" } }, rq: ["ormawa_id", "nim", "jabatan", "mulai"] }, rq: 1 }, r: "object", it: "KemahasiswaanPengurus" }, deleteKemahasiswaanPengurusById: { id: "deleteKemahasiswaanPengurusById", m: "DELETE", path: "/v1/kemahasiswaan/pengurus/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Pengurus organisasi: hapus", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pengurus", k: "id", d: "/v1/kemahasiswaan/pengurus/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanKegiatan: { id: "getKemahasiswaanKegiatan", m: "GET", path: "/v1/kemahasiswaan/kegiatan", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): daftar", ds: "Diajukan pengurus inti ormawa (pengaju_nim otomatis), disetujui pengelola atau pembina, lalu LPJ diajukan dan diterima. Selain pengelola melihat kegiatan yang sudah disetujui, kegiatan yang diajukannya, atau ormawa yang dibinanya. Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status disetujui/lpj_diajukan/selesai atau miliknya sendiri).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "ormawa_id", in: "query", s: { t: "string", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "pengaju_nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tingkat", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nama, lokasi" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatan: { id: "postKemahasiswaanKegiatan", m: "POST", path: "/v1/kemahasiswaan/kegiatan", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): tambah", ds: "Pengelola, atau pengguna untuk datanya sendiri (pengaju_nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status draf/ditolak/disetujui.", sc: ["kemahasiswaan:write"], b: { ct: "application/json", ref: "KemahasiswaanKegiatanInput", s: { t: "object", pr: { ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, pengaju_nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, nama: { t: "string", max: 200 }, jenis: { t: "string", max: 100 }, tingkat: { t: "string", e: ["internal", "lokal", "wilayah", "nasional", "internasional"], d: "internal" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, lokasi: { t: "string", max: 255 }, jumlah_peserta: { t: "integer", min: 0, mx: 1e6 }, tujuan: { t: "string" }, anggaran_diajukan: { t: "number" }, anggaran_disetujui: { t: "number", ds: "(hanya pengelola)" }, realisasi: { t: "number" }, laporan: { t: "string" }, catatan: { t: "string", ds: "(hanya pengelola)" } }, rq: ["ormawa_id", "nama"] }, rq: 1 }, r: "object", it: "KemahasiswaanKegiatan" }, getKemahasiswaanKegiatanById: { id: "getKemahasiswaanKegiatanById", m: "GET", path: "/v1/kemahasiswaan/kegiatan/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): detail", ds: "Diajukan pengurus inti ormawa (pengaju_nim otomatis), disetujui pengelola atau pembina, lalu LPJ diajukan dan diterima. Selain pengelola melihat kegiatan yang sudah disetujui, kegiatan yang diajukannya, atau ormawa yang dibinanya. Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status disetujui/lpj_diajukan/selesai atau miliknya sendiri).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKegiatan" }, putKemahasiswaanKegiatanById: { id: "putKemahasiswaanKegiatanById", m: "PUT", path: "/v1/kemahasiswaan/kegiatan/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): ubah", ds: "Pengelola, atau pengguna untuk datanya sendiri (pengaju_nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status draf/ditolak/disetujui. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKegiatanInput", s: { t: "object", pr: { ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa", rf: { l: "/v1/kemahasiswaan/ormawa", k: "id", d: "/v1/kemahasiswaan/ormawa/{id}" } }, pengaju_nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, nama: { t: "string", max: 200 }, jenis: { t: "string", max: 100 }, tingkat: { t: "string", e: ["internal", "lokal", "wilayah", "nasional", "internasional"], d: "internal" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, lokasi: { t: "string", max: 255 }, jumlah_peserta: { t: "integer", min: 0, mx: 1e6 }, tujuan: { t: "string" }, anggaran_diajukan: { t: "number" }, anggaran_disetujui: { t: "number", ds: "(hanya pengelola)" }, realisasi: { t: "number" }, laporan: { t: "string" }, catatan: { t: "string", ds: "(hanya pengelola)" } }, rq: ["ormawa_id", "nama"] }, rq: 1 }, r: "object", it: "KemahasiswaanKegiatan" }, deleteKemahasiswaanKegiatanById: { id: "deleteKemahasiswaanKegiatanById", m: "DELETE", path: "/v1/kemahasiswaan/kegiatan/{id}", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): hapus", ds: "Pengelola, atau pengguna untuk datanya sendiri (pengaju_nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status draf/ditolak/disetujui.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanKegiatanByIdBerkas: { id: "getKemahasiswaanKegiatanByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/kegiatan/{id}/berkas", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanKegiatanByIdBerkas: { id: "postKemahasiswaanKegiatanByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/berkas", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola, atau pengguna untuk datanya sendiri (pengaju_nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status draf/ditolak/disetujui.', sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanKegiatanByIdBerkasByUuid: { id: "getKemahasiswaanKegiatanByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/kegiatan/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanKegiatanByIdBerkasByUuid: { id: "deleteKemahasiswaanKegiatanByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/kegiatan/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): hapus lampiran", ds: "Pengelola, atau pengguna untuk datanya sendiri (pengaju_nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status draf/ditolak/disetujui.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, postKemahasiswaanKegiatanByIdAjukan: { id: "postKemahasiswaanKegiatanByIdAjukan", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/ajukan", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Ajukan proposal", ds: "Pemilik data. Status harus draf/ditolak, menjadi diajukan.", sc: ["kemahasiswaan:write"], tr: { dari: ["draf", "ditolak"], ke: "diajukan" }, oleh: "pemilik", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatanByIdSetujui: { id: "postKemahasiswaanKegiatanByIdSetujui", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/setujui", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Setujui proposal", ds: "Pengelola modul. Status harus diajukan, menjadi disetujui.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan"], ke: "disetujui" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKegiatanSetujuiInput", s: { t: "object", pr: { anggaran_disetujui: { t: "number" }, catatan: { t: "string" } } }, rq: 1 }, r: "object", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatanByIdTolak: { id: "postKemahasiswaanKegiatanByIdTolak", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/tolak", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Tolak proposal", ds: "Pengelola modul. Status harus diajukan, menjadi ditolak.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan"], ke: "ditolak" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKegiatanTolakInput", s: { t: "object", pr: { alasan: { t: "string" } }, rq: ["alasan"] }, rq: 1 }, r: "object", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatanByIdAjukanLpj: { id: "postKemahasiswaanKegiatanByIdAjukanLpj", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/ajukan-lpj", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Ajukan LPJ", ds: "Pemilik data. Status harus disetujui, menjadi lpj_diajukan.", sc: ["kemahasiswaan:write"], tr: { dari: ["disetujui"], ke: "lpj_diajukan" }, oleh: "pemilik", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatanByIdTerimaLpj: { id: "postKemahasiswaanKegiatanByIdTerimaLpj", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/terima-lpj", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Terima LPJ", ds: "Pengelola modul. Status harus lpj_diajukan, menjadi selesai.", sc: ["kemahasiswaan:write"], tr: { dari: ["lpj_diajukan"], ke: "selesai" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKegiatan" }, postKemahasiswaanKegiatanByIdKembalikanLpj: { id: "postKemahasiswaanKegiatanByIdKembalikanLpj", m: "POST", path: "/v1/kemahasiswaan/kegiatan/{id}/kembalikan-lpj", tag: "Kemahasiswaan: Organisasi", sum: "Kegiatan ormawa (proposal dan LPJ): Kembalikan LPJ", ds: "Pengelola modul. Status harus lpj_diajukan, menjadi disetujui.", sc: ["kemahasiswaan:write"], tr: { dari: ["lpj_diajukan"], ke: "disetujui" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/kegiatan", k: "id", d: "/v1/kemahasiswaan/kegiatan/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKegiatanKembalikanLpjInput", s: { t: "object", pr: { alasan: { t: "string" } }, rq: ["alasan"] }, rq: 1 }, r: "object", it: "KemahasiswaanKegiatan" }, getKemahasiswaanPrestasi: { id: "getKemahasiswaanPrestasi", m: "GET", path: "/v1/kemahasiswaan/prestasi", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: daftar", ds: "Dilaporkan mahasiswa (lampirkan sertifikat/bukti), diverifikasi pengelola. Prestasi terverifikasi terlihat semua pengguna. Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status diverifikasi atau miliknya sendiri).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "kode_prodi", in: "query", s: { t: "string", rf: { l: "/v1/referensi/prodi", k: "kode_prodi", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tingkat", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "kategori", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "jenis", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tahun_id", in: "query", s: { t: "string", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "pembimbing_nidn", in: "query", s: { t: "string", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nama_kegiatan, penyelenggara, nim" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanPrestasi" }, postKemahasiswaanPrestasi: { id: "postKemahasiswaanPrestasi", m: "POST", path: "/v1/kemahasiswaan/prestasi", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: tambah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan/ditolak.", sc: ["kemahasiswaan:write"], b: { ct: "application/json", ref: "KemahasiswaanPrestasiInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, nama_kegiatan: { t: "string", max: 255 }, penyelenggara: { t: "string", max: 200 }, tingkat: { t: "string", e: ["lokal", "wilayah", "nasional", "internasional"] }, kategori: { t: "string", e: ["akademik", "non_akademik"], d: "non_akademik" }, bidang: { t: "string", max: 100 }, jenis: { t: "string", e: ["individu", "kelompok"], d: "individu" }, peringkat: { t: "string", max: 100 }, tanggal: { t: "string", f: "date" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, url: { t: "string", f: "uri" }, pembimbing_nidn: { t: "string", ds: "m_dosen.NIDN", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, catatan: { t: "string", max: 255, ds: "(hanya pengelola)" } }, rq: ["nim", "nama_kegiatan", "tingkat", "peringkat"] }, rq: 1 }, r: "object", it: "KemahasiswaanPrestasi" }, getKemahasiswaanPrestasiById: { id: "getKemahasiswaanPrestasiById", m: "GET", path: "/v1/kemahasiswaan/prestasi/{id}", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: detail", ds: "Dilaporkan mahasiswa (lampirkan sertifikat/bukti), diverifikasi pengelola. Prestasi terverifikasi terlihat semua pengguna. Semua pemilik token ber-scope kemahasiswaan:read (selain pengelola hanya melihat status diverifikasi atau miliknya sendiri).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPrestasi" }, putKemahasiswaanPrestasiById: { id: "putKemahasiswaanPrestasiById", m: "PUT", path: "/v1/kemahasiswaan/prestasi/{id}", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: ubah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan/ditolak. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPrestasiInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, nama_kegiatan: { t: "string", max: 255 }, penyelenggara: { t: "string", max: 200 }, tingkat: { t: "string", e: ["lokal", "wilayah", "nasional", "internasional"] }, kategori: { t: "string", e: ["akademik", "non_akademik"], d: "non_akademik" }, bidang: { t: "string", max: 100 }, jenis: { t: "string", e: ["individu", "kelompok"], d: "individu" }, peringkat: { t: "string", max: 100 }, tanggal: { t: "string", f: "date" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id", rf: { l: "/v1/referensi/tahun-akademik", k: "tahun_id", q: 0 } }, url: { t: "string", f: "uri" }, pembimbing_nidn: { t: "string", ds: "m_dosen.NIDN", rf: { l: "/v1/dosen", k: "nidn", d: "/v1/dosen/{nidn}" } }, catatan: { t: "string", max: 255, ds: "(hanya pengelola)" } }, rq: ["nim", "nama_kegiatan", "tingkat", "peringkat"] }, rq: 1 }, r: "object", it: "KemahasiswaanPrestasi" }, deleteKemahasiswaanPrestasiById: { id: "deleteKemahasiswaanPrestasiById", m: "DELETE", path: "/v1/kemahasiswaan/prestasi/{id}", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: hapus", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan/ditolak.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanPrestasiByIdBerkas: { id: "getKemahasiswaanPrestasiByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/prestasi/{id}/berkas", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanPrestasiByIdBerkas: { id: "postKemahasiswaanPrestasiByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/prestasi/{id}/berkas", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan/ditolak.', sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanPrestasiByIdBerkasByUuid: { id: "getKemahasiswaanPrestasiByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/prestasi/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanPrestasiByIdBerkasByUuid: { id: "deleteKemahasiswaanPrestasiByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/prestasi/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: hapus lampiran", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan/ditolak.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" }, postKemahasiswaanPrestasiByIdVerifikasi: { id: "postKemahasiswaanPrestasiByIdVerifikasi", m: "POST", path: "/v1/kemahasiswaan/prestasi/{id}/verifikasi", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: Verifikasi", ds: "Pengelola modul. Status harus diajukan, menjadi diverifikasi.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan"], ke: "diverifikasi" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPrestasi" }, postKemahasiswaanPrestasiByIdTolak: { id: "postKemahasiswaanPrestasiByIdTolak", m: "POST", path: "/v1/kemahasiswaan/prestasi/{id}/tolak", tag: "Kemahasiswaan: Prestasi", sum: "Prestasi mahasiswa: Tolak", ds: "Pengelola modul. Status harus diajukan, menjadi ditolak.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan"], ke: "ditolak" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/prestasi", k: "id", d: "/v1/kemahasiswaan/prestasi/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPrestasiTolakInput", s: { t: "object", pr: { alasan: { t: "string", max: 255 } }, rq: ["alasan"] }, rq: 1 }, r: "object", it: "KemahasiswaanPrestasi" }, getKemahasiswaanKonseling: { id: "getKemahasiswaanKonseling", m: "GET", path: "/v1/kemahasiswaan/konseling", tag: "Kemahasiswaan: Konseling", sum: "Konseling: daftar", ds: "Mahasiswa mengajukan konseling; pengelola menugaskan konselor (username). catatan_konselor hanya terlihat oleh konselor yang ditugaskan. Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "konselor", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "jenis", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "media", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanKonseling" }, postKemahasiswaanKonseling: { id: "postKemahasiswaanKonseling", m: "POST", path: "/v1/kemahasiswaan/konseling", tag: "Kemahasiswaan: Konseling", sum: "Konseling: tambah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.", sc: ["kemahasiswaan:write"], b: { ct: "application/json", ref: "KemahasiswaanKonselingInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, konselor: { t: "string", ds: "user.username (hanya pengelola)", rf: { l: "pengguna", k: "username" } }, jenis: { t: "string", e: ["akademik", "pribadi", "karier", "keuangan", "lainnya"], d: "lainnya" }, topik: { t: "string", max: 255 }, uraian: { t: "string" }, jadwal: { t: "string", f: "date-time", ds: "(hanya pengelola)" }, media: { t: "string", e: ["tatap_muka", "daring", "telepon"], d: "tatap_muka" } }, rq: ["nim", "topik"] }, rq: 1 }, r: "object", it: "KemahasiswaanKonseling" }, getKemahasiswaanKonselingById: { id: "getKemahasiswaanKonselingById", m: "GET", path: "/v1/kemahasiswaan/konseling/{id}", tag: "Kemahasiswaan: Konseling", sum: "Konseling: detail", ds: "Mahasiswa mengajukan konseling; pengelola menugaskan konselor (username). catatan_konselor hanya terlihat oleh konselor yang ditugaskan. Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKonseling" }, putKemahasiswaanKonselingById: { id: "putKemahasiswaanKonselingById", m: "PUT", path: "/v1/kemahasiswaan/konseling/{id}", tag: "Kemahasiswaan: Konseling", sum: "Konseling: ubah", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKonselingInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, konselor: { t: "string", ds: "user.username (hanya pengelola)", rf: { l: "pengguna", k: "username" } }, jenis: { t: "string", e: ["akademik", "pribadi", "karier", "keuangan", "lainnya"], d: "lainnya" }, topik: { t: "string", max: 255 }, uraian: { t: "string" }, jadwal: { t: "string", f: "date-time", ds: "(hanya pengelola)" }, media: { t: "string", e: ["tatap_muka", "daring", "telepon"], d: "tatap_muka" } }, rq: ["nim", "topik"] }, rq: 1 }, r: "object", it: "KemahasiswaanKonseling" }, deleteKemahasiswaanKonselingById: { id: "deleteKemahasiswaanKonselingById", m: "DELETE", path: "/v1/kemahasiswaan/konseling/{id}", tag: "Kemahasiswaan: Konseling", sum: "Konseling: hapus", ds: "Pengelola, atau pengguna untuk datanya sendiri (nim diisi otomatis); pemilik hanya bisa mengubah/menghapus bila status diajukan.", sc: ["kemahasiswaan:write"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, postKemahasiswaanKonselingByIdJadwalkan: { id: "postKemahasiswaanKonselingByIdJadwalkan", m: "POST", path: "/v1/kemahasiswaan/konseling/{id}/jadwalkan", tag: "Kemahasiswaan: Konseling", sum: "Konseling: Jadwalkan", ds: "Pengelola modul. Status harus diajukan/dijadwalkan, menjadi dijadwalkan.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan", "dijadwalkan"], ke: "dijadwalkan" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKonselingJadwalkanInput", s: { t: "object", pr: { konselor: { t: "string", ds: "user.username", rf: { l: "pengguna", k: "username" } }, jadwal: { t: "string", f: "date-time" }, media: { t: "string", e: ["tatap_muka", "daring", "telepon"] } }, rq: ["konselor", "jadwal"] }, rq: 1 }, r: "object", it: "KemahasiswaanKonseling" }, postKemahasiswaanKonselingByIdSelesai: { id: "postKemahasiswaanKonselingByIdSelesai", m: "POST", path: "/v1/kemahasiswaan/konseling/{id}/selesai", tag: "Kemahasiswaan: Konseling", sum: "Konseling: Selesai", ds: "Pengelola modul. Status harus dijadwalkan, menjadi selesai.", sc: ["kemahasiswaan:write"], tr: { dari: ["dijadwalkan"], ke: "selesai" }, oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanKonselingSelesaiInput", s: { t: "object", pr: { catatan_konselor: { t: "string" } } }, rq: 1 }, r: "object", it: "KemahasiswaanKonseling" }, postKemahasiswaanKonselingByIdBatalkan: { id: "postKemahasiswaanKonselingByIdBatalkan", m: "POST", path: "/v1/kemahasiswaan/konseling/{id}/batalkan", tag: "Kemahasiswaan: Konseling", sum: "Konseling: Batalkan", ds: "Pemilik data atau pengelola. Status harus diajukan/dijadwalkan, menjadi dibatalkan.", sc: ["kemahasiswaan:write"], tr: { dari: ["diajukan", "dijadwalkan"], ke: "dibatalkan" }, oleh: "pemilik_atau_pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/konseling", k: "id", d: "/v1/kemahasiswaan/konseling/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanKonseling" }, getKemahasiswaanPelanggaran: { id: "getKemahasiswaanPelanggaran", m: "GET", path: "/v1/kemahasiswaan/pelanggaran", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: daftar", ds: "Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "page", in: "query", s: { t: "integer", min: 1, d: 1 }, ds: "Nomor halaman, mulai 1." }, { nm: "per_page", in: "query", s: { t: "integer", min: 1, mx: 100, d: 25 }, ds: "Jumlah data per halaman (maksimal 100)." }, { nm: "nim", in: "query", s: { t: "string", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "tingkat", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "status", in: "query", s: { t: "string" }, ds: 'Filter kesamaan (isi "null" untuk kosong)' }, { nm: "q", in: "query", s: { t: "string" }, ds: "Cari di nim, jenis" }, { nm: "dari", in: "query", s: { t: "string" }, ds: "Tanggal awal (YYYY-MM-DD)" }, { nm: "sampai", in: "query", s: { t: "string" }, ds: "Tanggal akhir (YYYY-MM-DD)" }, { nm: "urut", in: "query", s: { t: "string" }, ds: 'Nama kolom, awali "-" untuk menurun' }], r: "list", it: "KemahasiswaanPelanggaran" }, postKemahasiswaanPelanggaran: { id: "postKemahasiswaanPelanggaran", m: "POST", path: "/v1/kemahasiswaan/pelanggaran", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: tambah", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", b: { ct: "application/json", ref: "KemahasiswaanPelanggaranInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, tanggal: { t: "string", f: "date" }, jenis: { t: "string", max: 150 }, tingkat: { t: "string", e: ["ringan", "sedang", "berat"], d: "ringan" }, uraian: { t: "string" }, sanksi: { t: "string", max: 255 }, sanksi_mulai: { t: "string", f: "date" }, sanksi_selesai: { t: "string", f: "date" }, nomor_sk: { t: "string", max: 100 }, status: { t: "string", e: ["proses", "ditetapkan", "selesai", "dibatalkan"], d: "proses" } }, rq: ["nim", "tanggal", "jenis"] }, rq: 1 }, r: "object", it: "KemahasiswaanPelanggaran" }, getKemahasiswaanPelanggaranById: { id: "getKemahasiswaanPelanggaranById", m: "GET", path: "/v1/kemahasiswaan/pelanggaran/{id}", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: detail", ds: "Pengelola melihat semua; pengguna lain hanya miliknya sendiri (nim).", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "object", it: "KemahasiswaanPelanggaran" }, putKemahasiswaanPelanggaranById: { id: "putKemahasiswaanPelanggaranById", m: "PUT", path: "/v1/kemahasiswaan/pelanggaran/{id}", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: ubah", ds: "Pengelola modul. Kolom yang tidak dikirim tidak berubah.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "application/json", ref: "KemahasiswaanPelanggaranInput", s: { t: "object", pr: { nim: { t: "string", ds: "m_mahasiswa.NIM", rf: { l: "/v1/mahasiswa", k: "nim", d: "/v1/mahasiswa/{nim}" } }, tanggal: { t: "string", f: "date" }, jenis: { t: "string", max: 150 }, tingkat: { t: "string", e: ["ringan", "sedang", "berat"], d: "ringan" }, uraian: { t: "string" }, sanksi: { t: "string", max: 255 }, sanksi_mulai: { t: "string", f: "date" }, sanksi_selesai: { t: "string", f: "date" }, nomor_sk: { t: "string", max: 100 }, status: { t: "string", e: ["proses", "ditetapkan", "selesai", "dibatalkan"], d: "proses" } }, rq: ["nim", "tanggal", "jenis"] }, rq: 1 }, r: "object", it: "KemahasiswaanPelanggaran" }, deleteKemahasiswaanPelanggaranById: { id: "deleteKemahasiswaanPelanggaranById", m: "DELETE", path: "/v1/kemahasiswaan/pelanggaran/{id}", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: hapus", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "none" }, getKemahasiswaanPelanggaranByIdBerkas: { id: "getKemahasiswaanPelanggaranByIdBerkas", m: "GET", path: "/v1/kemahasiswaan/pelanggaran/{id}/berkas", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: daftar lampiran", ds: "Siapa pun yang boleh melihat barisnya.", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], r: "list", it: "PusatBerkas" }, postKemahasiswaanPelanggaranByIdBerkas: { id: "postKemahasiswaanPelanggaranByIdBerkas", m: "POST", path: "/v1/kemahasiswaan/pelanggaran/{id}/berkas", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: unggah lampiran", ds: 'Multipart field "berkas" (atau JSON berkas_base64 + nama_file), opsional jenis dan keterangan. PDF, gambar, dokumen Office/ODF, CSV, TXT, ZIP; maksimal PUSAT_DATA_MAKS_MB (bawaan 20 MB). Pengelola modul.', sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }], b: { ct: "multipart/form-data", ref: "PusatBerkasInput", s: { t: "object", pr: { berkas: { t: "string", f: "binary" }, jenis: { t: "string", ds: "Mis. lampiran, bukti, laporan" }, keterangan: { t: "string" }, berkas_base64: { t: "string", ds: "Alternatif JSON" }, nama_file: { t: "string" } } }, rq: 1 }, r: "object", it: "PusatBerkas" }, getKemahasiswaanPelanggaranByIdBerkasByUuid: { id: "getKemahasiswaanPelanggaranByIdBerkasByUuid", m: "GET", path: "/v1/kemahasiswaan/pelanggaran/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: unduh lampiran", sc: ["kemahasiswaan:read"], pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "object" }, deleteKemahasiswaanPelanggaranByIdBerkasByUuid: { id: "deleteKemahasiswaanPelanggaranByIdBerkasByUuid", m: "DELETE", path: "/v1/kemahasiswaan/pelanggaran/{id}/berkas/{uuid}", tag: "Kemahasiswaan: Pelanggaran", sum: "Pelanggaran dan sanksi: hapus lampiran", ds: "Pengelola modul.", sc: ["kemahasiswaan:write"], oleh: "pengelola", pa: [{ nm: "id", in: "path", s: { t: "string", rf: { l: "/v1/kemahasiswaan/pelanggaran", k: "id", d: "/v1/kemahasiswaan/pelanggaran/{id}" } }, rq: 1, ds: "ID angka atau UUID" }, { nm: "uuid", in: "path", s: { t: "string" }, rq: 1, ds: "UUID berkas" }], r: "none" } };
|
|
10
|
+
var mandiri = [];
|
|
11
|
+
var skema = { KemahasiswaanBeasiswa: { t: "object", ds: "Program beasiswa (tabel kmhs_beasiswa)", pr: { id: { t: "integer" }, kode: { t: "string", max: 40, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 200 }, jenis: { t: "string", e: ["kip_kuliah", "prestasi", "ekonomi", "yayasan", "pemerintah_daerah", "swasta", "lainnya"] }, penyelenggara: { t: "string", max: 150 }, mitra_id: { t: "integer", ds: "ID di kerjasama_mitra" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id" }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi" }, nominal: { t: "number" }, periode_pencairan: { t: "string", e: ["sekali", "bulanan", "semester", "tahunan"], d: "semester" }, kuota: { t: "integer", min: 1, mx: 1e5 }, ipk_minimal: { t: "number" }, semester_minimal: { t: "integer", min: 1, mx: 14 }, semester_maksimal: { t: "integer", min: 1, mx: 14 }, syarat: { t: "string" }, daftar_mulai: { t: "string", f: "date" }, daftar_selesai: { t: "string", f: "date" }, status: { t: "string", e: ["draf", "buka", "seleksi", "berjalan", "selesai"], ds: "(hanya baca)", ro: 1 }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, PusatBerkas: { t: "object", pr: { uuid: { t: "string" }, jenis: { t: "string" }, nama: { t: "string" }, mime: { t: "string" }, ukuran: { t: "integer" }, sha256: { t: "string" }, keterangan: { t: "string", n: 1 }, diunggah_oleh: { t: "string" }, created_at: { t: "string", f: "date-time" } } }, KemahasiswaanPendaftar: { t: "object", ds: "Pendaftar beasiswa (tabel kmhs_beasiswa_pendaftar)", pr: { id: { t: "integer" }, beasiswa_id: { t: "integer", ds: "ID di kmhs_beasiswa" }, nim: { t: "string", ds: "m_mahasiswa.NIM" }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi (hanya baca)", ro: 1 }, ipk: { t: "number", ds: "(hanya pengelola)" }, semester: { t: "integer", min: 1, mx: 14 }, penghasilan_ortu: { t: "number" }, alasan: { t: "string" }, skor: { t: "number", ds: "(hanya pengelola)" }, status: { t: "string", e: ["diajukan", "diverifikasi", "diterima", "ditolak", "dicabut"], ds: "(hanya baca)", ro: 1 }, catatan: { t: "string", ds: "(hanya pengelola)" }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanPencairan: { t: "object", ds: "Pencairan beasiswa (tabel kmhs_beasiswa_pencairan)", pr: { id: { t: "integer" }, pendaftar_id: { t: "integer", ds: "ID di kmhs_beasiswa_pendaftar" }, nim: { t: "string", ds: "m_mahasiswa.NIM (hanya baca)", ro: 1 }, tahun_id: { t: "string", ds: "m_tahun.tahun_id" }, tanggal: { t: "string", f: "date" }, nominal: { t: "number" }, cara: { t: "string", e: ["transfer", "potong_ukt", "tunai", "lainnya"], d: "transfer" }, status: { t: "string", e: ["rencana", "dicairkan", "gagal"], d: "rencana" }, keterangan: { t: "string", max: 255 }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanOrmawa: { t: "object", ds: "Organisasi mahasiswa (tabel kmhs_ormawa)", pr: { id: { t: "integer" }, kode: { t: "string", max: 30, p: "^[A-Za-z0-9._\\-/]+$", ds: "(unik)" }, nama: { t: "string", max: 150 }, jenis: { t: "string", e: ["bem", "dpm", "hima", "ukm", "komunitas", "lainnya"] }, bidang: { t: "string", max: 100 }, unit_id: { t: "integer", ds: "ID di induk_unit" }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi" }, pembina_nidn: { t: "string", ds: "m_dosen.NIDN" }, deskripsi: { t: "string" }, email: { t: "string", f: "email" }, instagram: { t: "string", max: 100 }, nomor_sk: { t: "string", max: 100 }, aktif: { t: "boolean", d: "1" }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanPengurus: { t: "object", ds: "Pengurus organisasi (tabel kmhs_ormawa_pengurus)", pr: { id: { t: "integer" }, ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa" }, nim: { t: "string", ds: "m_mahasiswa.NIM" }, jabatan: { t: "string", max: 100 }, inti: { t: "boolean", d: "0" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, aktif: { t: "boolean", d: "1" }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanKegiatan: { t: "object", ds: "Kegiatan ormawa (proposal dan LPJ) (tabel kmhs_kegiatan)", pr: { id: { t: "integer" }, ormawa_id: { t: "integer", ds: "ID di kmhs_ormawa" }, pengaju_nim: { t: "string", ds: "m_mahasiswa.NIM" }, nama: { t: "string", max: 200 }, jenis: { t: "string", max: 100 }, tingkat: { t: "string", e: ["internal", "lokal", "wilayah", "nasional", "internasional"], d: "internal" }, mulai: { t: "string", f: "date" }, selesai: { t: "string", f: "date" }, lokasi: { t: "string", max: 255 }, jumlah_peserta: { t: "integer", min: 0, mx: 1e6 }, tujuan: { t: "string" }, anggaran_diajukan: { t: "number" }, anggaran_disetujui: { t: "number", ds: "(hanya pengelola)" }, realisasi: { t: "number" }, laporan: { t: "string" }, status: { t: "string", e: ["draf", "diajukan", "disetujui", "ditolak", "lpj_diajukan", "selesai", "dibatalkan"], ds: "(hanya baca)", ro: 1 }, catatan: { t: "string", ds: "(hanya pengelola)" }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanPrestasi: { t: "object", ds: "Prestasi mahasiswa (tabel kmhs_prestasi)", pr: { id: { t: "integer" }, nim: { t: "string", ds: "m_mahasiswa.NIM" }, kode_prodi: { t: "string", ds: "m_program_studi.kode_prodi (hanya baca)", ro: 1 }, nama_kegiatan: { t: "string", max: 255 }, penyelenggara: { t: "string", max: 200 }, tingkat: { t: "string", e: ["lokal", "wilayah", "nasional", "internasional"] }, kategori: { t: "string", e: ["akademik", "non_akademik"], d: "non_akademik" }, bidang: { t: "string", max: 100 }, jenis: { t: "string", e: ["individu", "kelompok"], d: "individu" }, peringkat: { t: "string", max: 100 }, tanggal: { t: "string", f: "date" }, tahun_id: { t: "string", ds: "m_tahun.tahun_id" }, url: { t: "string", f: "uri" }, pembimbing_nidn: { t: "string", ds: "m_dosen.NIDN" }, status: { t: "string", e: ["diajukan", "diverifikasi", "ditolak"], ds: "(hanya baca)", ro: 1 }, catatan: { t: "string", max: 255, ds: "(hanya pengelola)" }, diverifikasi_oleh: { t: "string", max: 60, ds: "(hanya baca)", ro: 1 }, diverifikasi_pada: { t: "string", f: "date-time", ds: "(hanya baca)", ro: 1 }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanKonseling: { t: "object", ds: "Konseling (tabel kmhs_konseling)", pr: { id: { t: "integer" }, nim: { t: "string", ds: "m_mahasiswa.NIM" }, konselor: { t: "string", ds: "user.username (hanya pengelola)" }, jenis: { t: "string", e: ["akademik", "pribadi", "karier", "keuangan", "lainnya"], d: "lainnya" }, topik: { t: "string", max: 255 }, uraian: { t: "string" }, jadwal: { t: "string", f: "date-time", ds: "(hanya pengelola)" }, media: { t: "string", e: ["tatap_muka", "daring", "telepon"], d: "tatap_muka" }, catatan_konselor: { t: "string", ds: "(hanya baca)", ro: 1 }, status: { t: "string", e: ["diajukan", "dijadwalkan", "selesai", "dibatalkan"], ds: "(hanya baca)", ro: 1 }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } }, KemahasiswaanPelanggaran: { t: "object", ds: "Pelanggaran dan sanksi (tabel kmhs_pelanggaran)", pr: { id: { t: "integer" }, nim: { t: "string", ds: "m_mahasiswa.NIM" }, tanggal: { t: "string", f: "date" }, jenis: { t: "string", max: 150 }, tingkat: { t: "string", e: ["ringan", "sedang", "berat"], d: "ringan" }, uraian: { t: "string" }, sanksi: { t: "string", max: 255 }, sanksi_mulai: { t: "string", f: "date" }, sanksi_selesai: { t: "string", f: "date" }, nomor_sk: { t: "string", max: 100 }, status: { t: "string", e: ["proses", "ditetapkan", "selesai", "dibatalkan"], d: "proses" }, created_at: { t: "string", n: 1, f: "date-time" }, updated_at: { t: "string", n: 1, f: "date-time" } } } };
|
|
12
|
+
var kemahasiswaan_default = { key, resources, ops, mandiri, skema };
|
|
13
|
+
|
|
14
|
+
exports.default = kemahasiswaan_default;
|
|
15
|
+
exports.key = key;
|
|
16
|
+
exports.mandiri = mandiri;
|
|
17
|
+
exports.ops = ops;
|
|
18
|
+
exports.resources = resources;
|
|
19
|
+
exports.skema = skema;
|
|
20
|
+
//# sourceMappingURL=kemahasiswaan-EINWXAY7.cjs.map
|