From 354e706dc5da3e1f0c6deb40857e6a87b6b2b3be Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 27 Mar 2026 14:34:49 +0800 Subject: [PATCH] fix: update service letter seed with realistic dates for chart trends - Added 5 service letters with createdAt dates spread across 6 months - Changed from upsert to update/create pattern to allow createdAt modification - This ensures chart-surat.tsx displays proper trend data - Previous data had all timestamps at seed time, causing empty 6-month trend Co-authored-by: Qwen-Coder --- .qwen/settings.json | 7 ++++ mantine-expert.skill | Bin 0 -> 3684 bytes prisma/seeders/seed-public-services.ts | 47 ++++++++++++++++++++++--- 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 .qwen/settings.json create mode 100644 mantine-expert.skill diff --git a/.qwen/settings.json b/.qwen/settings.json new file mode 100644 index 0000000..9cb3001 --- /dev/null +++ b/.qwen/settings.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "Bash(bun *)" + ] + } +} \ No newline at end of file diff --git a/mantine-expert.skill b/mantine-expert.skill new file mode 100644 index 0000000000000000000000000000000000000000..d2636412a6a386d56a7beabfda00e43cc5dde340 GIT binary patch literal 3684 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 literal 0 HcmV?d00001 diff --git a/prisma/seeders/seed-public-services.ts b/prisma/seeders/seed-public-services.ts index a409fc2..873dec4 100644 --- a/prisma/seeders/seed-public-services.ts +++ b/prisma/seeders/seed-public-services.ts @@ -61,11 +61,12 @@ export async function seedComplaints(adminId: string) { /** * Seed Service Letters - * Creates sample administrative letter requests + * Creates sample administrative letter requests with dates spread across 6 months */ export async function seedServiceLetters(adminId: string) { console.log("Seeding Service Letters..."); + const now = new Date(); const serviceLetters = [ { letterNumber: "SKT-2025-001", @@ -76,7 +77,8 @@ export async function seedServiceLetters(adminId: string) { purpose: "Pembuatan KTP baru", status: "SELESAI", processedBy: adminId, - completedAt: new Date(), + completedAt: new Date(now.getTime() - 10 * 24 * 60 * 60 * 1000), // 10 days ago + createdAt: new Date(now.getTime() - 15 * 24 * 60 * 60 * 1000), // 15 days ago }, { letterNumber: "SKT-2025-002", @@ -87,6 +89,7 @@ export async function seedServiceLetters(adminId: string) { purpose: "Perubahan data KK", status: "DIPROSES", processedBy: adminId, + createdAt: new Date(now.getTime() - 45 * 24 * 60 * 60 * 1000), // 45 days ago }, { letterNumber: "SKT-2025-003", @@ -96,15 +99,49 @@ export async function seedServiceLetters(adminId: string) { applicantAddress: "Jl. Cabe No. 10", purpose: "Surat keterangan domisili", status: "BARU", + createdAt: new Date(now.getTime() - 90 * 24 * 60 * 60 * 1000), // 90 days ago + }, + { + letterNumber: "SKT-2024-004", + letterType: "USAHA", + applicantName: "Made Wijaya", + applicantNik: "5103010101950004", + applicantAddress: "Jl. Penenjoan No. 15", + purpose: "Surat keterangan usaha", + status: "SELESAI", + processedBy: adminId, + completedAt: new Date(now.getTime() - 120 * 24 * 60 * 60 * 1000), // 120 days ago + createdAt: new Date(now.getTime() - 130 * 24 * 60 * 60 * 1000), // 130 days ago + }, + { + letterNumber: "SKT-2024-005", + letterType: "KETERANGAN_TIDAK_MAMPU", + applicantName: "Putu Sari", + applicantNik: "5103010101980005", + applicantAddress: "Gg. Bucu No. 8", + purpose: "Keterangan tidak mampu untuk beasiswa", + status: "SELESAI", + processedBy: adminId, + completedAt: new Date(now.getTime() - 150 * 24 * 60 * 60 * 1000), // 150 days ago + createdAt: new Date(now.getTime() - 160 * 24 * 60 * 60 * 1000), // 160 days ago }, ]; for (const letter of serviceLetters) { - await prisma.serviceLetter.upsert({ + const existing = await prisma.serviceLetter.findUnique({ where: { letterNumber: letter.letterNumber }, - update: letter, - create: letter, }); + + if (existing) { + await prisma.serviceLetter.update({ + where: { letterNumber: letter.letterNumber }, + data: letter, + }); + } else { + await prisma.serviceLetter.create({ + data: letter, + }); + } } console.log("✅ Service Letters seeded successfully");