From a475db688b6cdc21457ad84b0362c29600a1134f Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Thu, 30 Oct 2025 18:10:48 +0800 Subject: [PATCH] upd : pelayanan surat Deskripsi: - update database - update seeder categori pelayanan surat No Issues --- prisma/schema.prisma | 111 ++++++++++++++++++++++++++++-- prisma/seed.ts | 11 +++ src/lib/categoryPelayananSurat.ts | 109 +++++++++++++++++++++++++++++ 3 files changed, 224 insertions(+), 7 deletions(-) create mode 100644 src/lib/categoryPelayananSurat.ts diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a436f44..8429423 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -29,6 +29,7 @@ model User { updatedAt DateTime @updatedAt ApiKey ApiKey[] HistoryPengaduan HistoryPengaduan[] + HistoryPelayanan HistoryPelayanan[] } model ApiKey { @@ -92,13 +93,109 @@ model HistoryPengaduan { } model Warga { - id String @id @default(cuid()) - name String? - phone String? @unique - isActive Boolean @default(true) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - Pengaduan Pengaduan[] + id String @id @default(cuid()) + name String? + phone String? @unique + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + Pengaduan Pengaduan[] + PelayananAjuan PelayananAjuan[] + SuratPelayanan SuratPelayanan[] +} + +model CategoryPelayanan { + id String @id @default(cuid()) + name String + syaratDokumen Json[] + dataText String[] + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + PelayananAjuan PelayananAjuan[] + SyaratDokumenPelayanan SyaratDokumenPelayanan[] + DataTextPelayanan DataTextPelayanan[] + SuratPelayanan SuratPelayanan[] +} + +model PelayananAjuan { + id String @id @default(cuid()) + Warga Warga @relation(fields: [idWarga], references: [id]) + idWarga String + CategoryPelayanan CategoryPelayanan @relation(fields: [idCategory], references: [id]) + idCategory String + noPengajuan String + status StatusPengaduan @default(antrian) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + HistoryPelayanan HistoryPelayanan[] + SyaratDokumenPelayanan SyaratDokumenPelayanan[] + DataTextPelayanan DataTextPelayanan[] + SuratPelayanan SuratPelayanan[] +} + +model HistoryPelayanan { + id String @id @default(cuid()) + PelayananAjuan PelayananAjuan @relation(fields: [idPengajuanLayanan], references: [id]) + idPengajuanLayanan String + User User? @relation(fields: [idUser], references: [id]) + idUser String? + deskripsi String? + status StatusPengaduan @default(antrian) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model SyaratDokumenPelayanan { + id String @id @default(cuid()) + PelayananAjuan PelayananAjuan @relation(fields: [idPengajuanLayanan], references: [id]) + idPengajuanLayanan String + CategoryPelayanan CategoryPelayanan @relation(fields: [idCategory], references: [id]) + idCategory String + jenis String + value String + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model DataTextPelayanan { + id String @id @default(cuid()) + PelayananAjuan PelayananAjuan @relation(fields: [idPengajuanLayanan], references: [id]) + idPengajuanLayanan String + CategoryPelayanan CategoryPelayanan @relation(fields: [idCategory], references: [id]) + idCategory String + jenis String + value String + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model SuratPelayanan { + id String @id @default(cuid()) + PelayananAjuan PelayananAjuan @relation(fields: [idPengajuanLayanan], references: [id]) + idPengajuanLayanan String + CategoryPelayanan CategoryPelayanan @relation(fields: [idCategory], references: [id]) + idCategory String + Warga Warga @relation(fields: [idWarga], references: [id]) + idWarga String + noSurat String + dateExpired DateTime @db.Date + status Int + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model Configuration { + id String @id @default(cuid()) + category String + value String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt } enum StatusPengaduan { diff --git a/prisma/seed.ts b/prisma/seed.ts index f5d4e0b..dca6791 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -1,3 +1,4 @@ +import { categoryPelayananSurat } from "@/lib/categoryPelayananSurat"; import { prisma } from "@/server/lib/prisma"; const category = [ @@ -80,6 +81,16 @@ const user = [ console.log(`✅ Category ${c.name} seeded successfully`) } + for (const cp of categoryPelayananSurat){ + await prisma.categoryPelayanan.upsert({ + where: { id: cp.id }, + create: cp, + update: cp + }) + + console.log(`✅ Category Pelayanan ${cp.name} seeded successfully`) + } + diff --git a/src/lib/categoryPelayananSurat.ts b/src/lib/categoryPelayananSurat.ts new file mode 100644 index 0000000..b2ef980 --- /dev/null +++ b/src/lib/categoryPelayananSurat.ts @@ -0,0 +1,109 @@ +export const categoryPelayananSurat = [ + { + id: "skbedabiodata", + name: "Surat Keterangan Beda Biodata Diri", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas di Wilayah Masing-masing" }, + { name: "ktp/kk", desc: "Fotokopi KTP atau Kartu Keluarga" }, + { name: "dokumen yang beda", desc: "Fotokopi dokumen bersangkutan yang terdapat perbedaan biodata diri, misalnya: Sertifikat Tanah, Ijazah, Polis Asuransi, dan lainnya." } + ], + dataText: ["nik", "nama", "tempat tanggal lahir", "jenis kelamin", "alamat", "pekerjaan", "dokumen", "tertulis pada dokumen a", "tertulis pada dokumen b"] + }, + { + id: "skbelumkawin", + name: "Surat Keterangan Belum Kawin", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kk", desc: "Fotokopi KTP dan Kartu Keluarga" }, + { name: "akta cerai", desc: "Fotokopi Akta Cerai bagi yang berstatus janda/duda" } + ], + dataText: ["nik", "nama", "tempat tanggal lahir", "jenis kelamin", "alamat", "status perkawinan"] + }, + { + id: "skdomisiliorganisasi", + name: "Surat Keterangan Domisili Organisasi", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "skt organisasi", desc: "Fotokopi Surat Keterangan Terdaftar (SKT) Organisasi atau Pengukuhan Kelompok" }, + {name: "susunan pengurus", desc: "Jika Pengajuan baru pembuatan SKT maka melengkapi Susunan Pengurus lengkap denganKop Organisasi"} + ], + dataText: ["nama organisasi", "alamat organisasi", "nama pemohon", "jabatan pemohon", "kontak", "penanggung jawab", "tanggal berdiri"] + }, + { + id: "skkelahiran", + name: "Surat Keterangan Kelahiran", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "surat lahir", desc: "Fotokopi Surat Keterangan Lahir dari Bidan/Dokter (jika ada)" } + ], + dataText: ["nama ayah", "nama ibu", "nama anak", "tanggal lahir", "tempat lahir", "jenis kelamin", "nama pelapor"] + }, + { + id: "skkelakuanbaik", + name: "Surat Keterangan Kelakuan Baik (Pengantar SKCK)", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kk", desc: "Fotokopi KTP dan Kartu Keluarga" } + ], + dataText: ["nik", "nama", "tempat tanggal lahir", "jenis kelamin", "alamat", "keperluan"] + }, + { + id: "skkematian", + name: "Surat Keterangan Kematian", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kk", desc: "Fotokopi KTP atau Kartu Keluarga" }, + { name: "surat kematian", desc: "Surat Keterangan Kematian dari Rumah Sakit/Dokter (jika ada)" } + ], + dataText: ["nama almarhum", "nik", "tempat tanggal lahir", "alamat", "tanggal kematian", "waktu kematian", "penyebab kematian"] + }, + { + id: "skpenghasilan", + name: "Surat Keterangan Penghasilan", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp ortu/kk", desc: "Fotokopi KTP orang tua atau Kartu Keluarga" }, + { name: "surat pernyataan", desc: "Surat Pernyataan Penghasilan bermaterai" } + ], + dataText: ["nama", "nik", "alamat", "pekerjaan", "jenis usaha", "penghasilan"] + }, + { + id: "sktempatusaha", + name: "Surat Keterangan Tempat Usaha", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kk", desc: "Fotokopi KTP atau Kartu Keluarga" }, + { name: "foto lokasi", desc: "Foto lokasi usaha dicetak dalam selembar kertas, diparaf dan distempel oleh Kelian" }, + { name: "sppt/sertifikat/sewa", desc: "Fotokopi SPPT, Sertifikat Hak Milik, Surat Perjanjian Sewa, atau Kwitansi Pembayaran Sewa 3 bulan terakhir" } + ], + dataText: ["nama usaha", "bidang usaha", "alamat usaha", "status tempat usaha", "luas tempat usaha", "jumlah karyawan", "tujuan pembuatan surat"] + }, + { + id: "sktidakmampu", + name: "Surat Keterangan Tidak Mampu", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kia/kk", desc: "Fotokopi KTP, KIA, atau Kartu Keluarga" } + ], + dataText: ["nik", "nama", "tempat tanggal lahir", "alamat", "alasan permohonan"] + }, + { + id: "skusaha", + name: "Surat Keterangan Usaha", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kk", desc: "Fotokopi KTP atau Kartu Keluarga" }, + { name: "foto lokasi", desc: "Foto lokasi usaha dicetak dalam selembar kertas, diparaf dan distempel oleh Kelian" } + ], + dataText: ["jenis usaha", "alamat usaha"] + }, + { + id: "skyatimpiatu", + name: "Surat Keterangan Yatim / Piatu / Yatim Piatu", + syaratDokumen: [ + { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, + { name: "ktp/kia/kk", desc: "Fotokopi KTP, KIA, atau Kartu Keluarga" } + ], + dataText: ["nama anak", "nama ayah", "status ayah", "nama ibu", "status ibu"] + } +]; -- 2.49.1