mcp pengaduan

Deskripsi:
- database pengaduan
- seeder pengaduan

No Issues
This commit is contained in:
2025-10-27 15:14:51 +08:00
parent 4d1e78468f
commit addd41389a
5 changed files with 126 additions and 55 deletions

View File

@@ -8,15 +8,26 @@ datasource db {
url = env("DATABASE_URL")
}
model User {
model Role {
id String @id @default(cuid())
name String?
email String? @unique
password String?
phone String? @unique
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ApiKey ApiKey[]
User User[]
}
model User {
id String @id @default(cuid())
Role Role? @relation(fields: [roleId], references: [id])
roleId String?
name String?
email String? @unique
password String?
phone String? @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ApiKey ApiKey[]
HistoryPengaduan HistoryPengaduan[]
}
model ApiKey {
@@ -39,24 +50,55 @@ model Credential {
updatedAt DateTime @updatedAt
}
model Pengaduan {
id String @id @default(cuid())
jenis_pengaduan String
name String?
phone String?
detail String?
status StatusPengaduan @default(diterima)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
model CategoryPengaduan {
id String @id @default(cuid())
name String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Pengaduan Pengaduan[]
}
model PengaduanSampah {
id String @id @default(cuid())
judul String
deskripsi String
status StatusPengaduan @default(diterima)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
model Pengaduan {
id String @id @default(cuid())
CategoryPengaduan CategoryPengaduan @relation(fields: [idCategory], references: [id])
idCategory String
Warga Warga @relation(fields: [idWarga], references: [id])
idWarga String
noPengaduan String
title String?
phone String?
detail String?
location String?
image String?
status StatusPengaduan @default(diterima)
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
HistoryPengaduan HistoryPengaduan[]
}
model HistoryPengaduan {
id String @id @default(cuid())
Pengaduan Pengaduan @relation(fields: [idPengaduan], references: [id])
idPengaduan String
User User @relation(fields: [idUser], references: [id])
idUser String
deskripsi String?
status StatusPengaduan @default(diterima)
image String?
order Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Warga {
id String @id @default(cuid())
name String?
phone String? @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Pengaduan Pengaduan[]
}
enum StatusPengaduan {

View File

@@ -1,24 +1,51 @@
import { prisma } from "@/server/lib/prisma";
const role = [
{
id: "developer",
name: "developer"
},
{
id: "admin",
name: "admin"
},
{
id: "pelaksana",
name: "pelaksana"
}
]
const user = [
{
name: "Bip",
email: "bip@bip.com",
password: "bip",
roleId: "developer"
}
];
; (async () => {
(async () => {
for (const u of user) {
await prisma.user.upsert({
where: { email: u.email },
create: u,
update: u,
update: u
})
console.log(`✅ User ${u.email} seeded successfully`)
}
for (const r of role) {
console.log(`Seeding role ${r.name}`)
await prisma.role.upsert({
where: { id: r.id },
create: r,
update: r
})
console.log(`✅ Role ${r.name} seeded successfully`)
}
})().catch((e) => {
console.error(e)