38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
// prisma/seeds/CrimeCategoriesSeeder.ts
|
|
import { generateId } from "../../app/_utils/common";
|
|
import { PrismaClient } from "@prisma/client";
|
|
import { crimeCategoriesData } from "../data/crime-category";
|
|
|
|
export class CrimeCategoriesSeeder {
|
|
constructor(private prisma: PrismaClient) { }
|
|
|
|
async run(): Promise<void> {
|
|
console.log("Seeding crime categories...");
|
|
|
|
// Truncate table jika diperlukan
|
|
await this.prisma.$executeRaw`TRUNCATE TABLE "crime_categories" CASCADE`;
|
|
|
|
for (const category of crimeCategoriesData) {
|
|
|
|
const newId = generateId({
|
|
prefix: "CC",
|
|
segments: {
|
|
sequentialDigits: 4,
|
|
},
|
|
format: "{prefix}-{sequence}",
|
|
separator: "-"
|
|
})
|
|
|
|
await this.prisma.crime_categories.create({
|
|
data: {
|
|
id: newId,
|
|
name: category.name,
|
|
description: category.description,
|
|
}
|
|
});
|
|
}
|
|
|
|
console.log(`✅ ${crimeCategoriesData.length} crime categories seeded`);
|
|
}
|
|
}
|