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-coder@alibabacloud.com>
This commit is contained in:
7
.qwen/settings.json
Normal file
7
.qwen/settings.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(bun *)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
mantine-expert.skill
Normal file
BIN
mantine-expert.skill
Normal file
Binary file not shown.
@@ -61,11 +61,12 @@ export async function seedComplaints(adminId: string) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Seed Service Letters
|
* 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) {
|
export async function seedServiceLetters(adminId: string) {
|
||||||
console.log("Seeding Service Letters...");
|
console.log("Seeding Service Letters...");
|
||||||
|
|
||||||
|
const now = new Date();
|
||||||
const serviceLetters = [
|
const serviceLetters = [
|
||||||
{
|
{
|
||||||
letterNumber: "SKT-2025-001",
|
letterNumber: "SKT-2025-001",
|
||||||
@@ -76,7 +77,8 @@ export async function seedServiceLetters(adminId: string) {
|
|||||||
purpose: "Pembuatan KTP baru",
|
purpose: "Pembuatan KTP baru",
|
||||||
status: "SELESAI",
|
status: "SELESAI",
|
||||||
processedBy: adminId,
|
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",
|
letterNumber: "SKT-2025-002",
|
||||||
@@ -87,6 +89,7 @@ export async function seedServiceLetters(adminId: string) {
|
|||||||
purpose: "Perubahan data KK",
|
purpose: "Perubahan data KK",
|
||||||
status: "DIPROSES",
|
status: "DIPROSES",
|
||||||
processedBy: adminId,
|
processedBy: adminId,
|
||||||
|
createdAt: new Date(now.getTime() - 45 * 24 * 60 * 60 * 1000), // 45 days ago
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
letterNumber: "SKT-2025-003",
|
letterNumber: "SKT-2025-003",
|
||||||
@@ -96,15 +99,49 @@ export async function seedServiceLetters(adminId: string) {
|
|||||||
applicantAddress: "Jl. Cabe No. 10",
|
applicantAddress: "Jl. Cabe No. 10",
|
||||||
purpose: "Surat keterangan domisili",
|
purpose: "Surat keterangan domisili",
|
||||||
status: "BARU",
|
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) {
|
for (const letter of serviceLetters) {
|
||||||
await prisma.serviceLetter.upsert({
|
const existing = await prisma.serviceLetter.findUnique({
|
||||||
where: { letterNumber: letter.letterNumber },
|
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");
|
console.log("✅ Service Letters seeded successfully");
|
||||||
|
|||||||
Reference in New Issue
Block a user