Merge pull request #85 from bipproduction/amalia/31-jul-24
upd: update struktur database
This commit is contained in:
@@ -13,6 +13,28 @@ datasource db {
|
|||||||
url = env("DATABASE_URL")
|
url = env("DATABASE_URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model AdminRole {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
name String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
Admin Admin[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model Admin {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
AdminRole AdminRole @relation(fields: [idAdminRole], references: [id])
|
||||||
|
idAdminRole String
|
||||||
|
name String
|
||||||
|
phone String @unique
|
||||||
|
email String? @unique
|
||||||
|
gender String @default("M") //M= Male, F= Female
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
model UserRole {
|
model UserRole {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
@@ -67,12 +89,12 @@ model User {
|
|||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
UserRole UserRole @relation(fields: [idUserRole], references: [id])
|
UserRole UserRole @relation(fields: [idUserRole], references: [id])
|
||||||
idUserRole String
|
idUserRole String
|
||||||
Village Village? @relation(fields: [idVillage], references: [id])
|
Village Village @relation(fields: [idVillage], references: [id])
|
||||||
idVillage String?
|
idVillage String
|
||||||
Group Group? @relation(fields: [idGroup], references: [id])
|
Group Group @relation(fields: [idGroup], references: [id])
|
||||||
idGroup String?
|
idGroup String
|
||||||
Position Position? @relation(fields: [idPosition], references: [id])
|
Position Position @relation(fields: [idPosition], references: [id])
|
||||||
idPosition String?
|
idPosition String
|
||||||
nik String @unique
|
nik String @unique
|
||||||
name String
|
name String
|
||||||
phone String @unique
|
phone String @unique
|
||||||
|
|||||||
110
prisma/seed.ts
110
prisma/seed.ts
@@ -1,8 +1,102 @@
|
|||||||
import { seederUser, seederUserRole } from '@/module/seeder';
|
import { seederAdmin, seederAdminRole, seederDesa, seederGroup, seederPosition, seederUser, seederUserRole } from '@/module/seeder';
|
||||||
import { PrismaClient } from '@prisma/client';
|
import { PrismaClient } from '@prisma/client';
|
||||||
const prisma = new PrismaClient()
|
const prisma = new PrismaClient()
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
// ADMIN ROLE
|
||||||
|
for (let data of seederAdminRole) {
|
||||||
|
await prisma.adminRole.upsert({
|
||||||
|
where: {
|
||||||
|
id: data.id
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: data.name
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
id: data.id,
|
||||||
|
name: data.name,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// ADMIN
|
||||||
|
for (let data of seederAdmin) {
|
||||||
|
await prisma.admin.upsert({
|
||||||
|
where: {
|
||||||
|
id: data.id
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: data.name,
|
||||||
|
idAdminRole: data.idAdminRole,
|
||||||
|
phone: data.phone,
|
||||||
|
email: data.email,
|
||||||
|
gender: data.gender
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
id: data.id,
|
||||||
|
idAdminRole: data.idAdminRole,
|
||||||
|
phone: data.phone,
|
||||||
|
email: data.email,
|
||||||
|
gender: data.gender,
|
||||||
|
name: data.name
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// DESA
|
||||||
|
for (let data of seederDesa) {
|
||||||
|
await prisma.village.upsert({
|
||||||
|
where: {
|
||||||
|
id: data.id
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: data.name,
|
||||||
|
desc: data.desc
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
id: data.id,
|
||||||
|
name: data.name,
|
||||||
|
desc: data.desc
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// GROUP
|
||||||
|
for (let data of seederGroup) {
|
||||||
|
await prisma.group.upsert({
|
||||||
|
where: {
|
||||||
|
id: data.id
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: data.name,
|
||||||
|
idVillage: data.idVillage
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
id: data.id,
|
||||||
|
name: data.name,
|
||||||
|
idVillage: data.idVillage
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// POSITION
|
||||||
|
for (let data of seederPosition) {
|
||||||
|
await prisma.position.upsert({
|
||||||
|
where: {
|
||||||
|
id: data.id
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: data.name,
|
||||||
|
idGroup: data.idGroup
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
id: data.id,
|
||||||
|
name: data.name,
|
||||||
|
idGroup: data.idGroup
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// USER ROLE
|
// USER ROLE
|
||||||
for (let data of seederUserRole) {
|
for (let data of seederUserRole) {
|
||||||
await prisma.userRole.upsert({
|
await prisma.userRole.upsert({
|
||||||
@@ -27,10 +121,21 @@ async function main() {
|
|||||||
id: data.id
|
id: data.id
|
||||||
},
|
},
|
||||||
update: {
|
update: {
|
||||||
name: data.name
|
idVillage: data.idVillage,
|
||||||
|
idGroup: data.idGroup,
|
||||||
|
idPosition: data.idPosition,
|
||||||
|
idUserRole: data.idUserRole,
|
||||||
|
nik: data.nik,
|
||||||
|
name: data.name,
|
||||||
|
phone: data.phone,
|
||||||
|
email: data.email,
|
||||||
|
gender: data.gender
|
||||||
},
|
},
|
||||||
create: {
|
create: {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
|
idVillage: data.idVillage,
|
||||||
|
idGroup: data.idGroup,
|
||||||
|
idPosition: data.idPosition,
|
||||||
idUserRole: data.idUserRole,
|
idUserRole: data.idUserRole,
|
||||||
nik: data.nik,
|
nik: data.nik,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
@@ -40,6 +145,7 @@ async function main() {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main().then(async () => {
|
main().then(async () => {
|
||||||
|
|||||||
26
src/module/seeder/data/admin.json
Normal file
26
src/module/seeder/data/admin.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "devAmalia",
|
||||||
|
"idAdminRole": "dev",
|
||||||
|
"name": "Amalia",
|
||||||
|
"phone": "628980185458",
|
||||||
|
"email": "amalia@bip.com",
|
||||||
|
"gender": "F"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "devLukman",
|
||||||
|
"idAdminRole": "dev",
|
||||||
|
"name": "Lukman",
|
||||||
|
"phone": "6287701790942",
|
||||||
|
"email": "lukman@bip.com",
|
||||||
|
"gender": "M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "devLukman",
|
||||||
|
"idAdminRole": "dev",
|
||||||
|
"name": "Malik",
|
||||||
|
"phone": "6289697338821",
|
||||||
|
"email": "malik@bip.com",
|
||||||
|
"gender": "M"
|
||||||
|
}
|
||||||
|
]
|
||||||
10
src/module/seeder/data/admin_role.json
Normal file
10
src/module/seeder/data/admin_role.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "dev",
|
||||||
|
"name": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "admin",
|
||||||
|
"name": "Admin"
|
||||||
|
}
|
||||||
|
]
|
||||||
7
src/module/seeder/data/desa.json
Normal file
7
src/module/seeder/data/desa.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "desa1",
|
||||||
|
"name": "Darmasaba",
|
||||||
|
"desc": "-"
|
||||||
|
}
|
||||||
|
]
|
||||||
7
src/module/seeder/data/group.json
Normal file
7
src/module/seeder/data/group.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "group1",
|
||||||
|
"idVillage": "desa1",
|
||||||
|
"name": "Dinas"
|
||||||
|
}
|
||||||
|
]
|
||||||
7
src/module/seeder/data/position.json
Normal file
7
src/module/seeder/data/position.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "position1",
|
||||||
|
"idGroup": "group1",
|
||||||
|
"name": "Perbekel"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,29 +1,14 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "devAmalia",
|
"id": "supadminAmalia",
|
||||||
"idUserRole": "dev",
|
"idUserRole": "supadmin",
|
||||||
|
"idVillage": "desa1",
|
||||||
|
"idGroup": "group1",
|
||||||
|
"idPosition": "position1",
|
||||||
"nik": "1111111",
|
"nik": "1111111",
|
||||||
"name": "Amalia",
|
"name": "Amalia",
|
||||||
"phone": "628980185458",
|
"phone": "628980185458",
|
||||||
"email": "amalia@bip.com",
|
"email": "amalia@bip.com",
|
||||||
"gender": "F"
|
"gender": "F"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "devLukman",
|
|
||||||
"idUserRole": "dev",
|
|
||||||
"nik": "2222222",
|
|
||||||
"name": "Lukman",
|
|
||||||
"phone": "6287701790942",
|
|
||||||
"email": "lukman@bip.com",
|
|
||||||
"gender": "M"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "devMalik",
|
|
||||||
"idUserRole": "dev",
|
|
||||||
"nik": "3333333",
|
|
||||||
"name": "Malik",
|
|
||||||
"phone": "6289697338821",
|
|
||||||
"email": "malik@bip.com",
|
|
||||||
"gender": "M"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"id": "dev",
|
|
||||||
"name": "Developer",
|
|
||||||
"desc": "-"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "supadmin",
|
"id": "supadmin",
|
||||||
"name": "Super Admin",
|
"name": "Super Admin",
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
|
import seederAdminRole from "./data/admin_role.json";
|
||||||
|
import seederAdmin from "./data/admin.json";
|
||||||
import seederUserRole from "./data/user_role.json";
|
import seederUserRole from "./data/user_role.json";
|
||||||
import seederUser from "./data/user.json";
|
import seederUser from "./data/user.json";
|
||||||
|
import seederDesa from "./data/desa.json";
|
||||||
|
import seederGroup from "./data/group.json";
|
||||||
|
import seederPosition from "./data/position.json";
|
||||||
|
|
||||||
export { seederUserRole, seederUser }
|
export { seederAdminRole, seederAdmin, seederDesa, seederGroup, seederPosition, seederUserRole, seederUser, }
|
||||||
@@ -14,9 +14,9 @@ export async function getAllUser(req: NextRequest) {
|
|||||||
where: {
|
where: {
|
||||||
isActive: true,
|
isActive: true,
|
||||||
idUserRole: String(idUserRole),
|
idUserRole: String(idUserRole),
|
||||||
idPosition: idPosition,
|
idPosition: String(idPosition),
|
||||||
idVillage: idVillage,
|
idVillage: String(idVillage),
|
||||||
idGroup: idGroup,
|
idGroup: String(idGroup),
|
||||||
},
|
},
|
||||||
select: {
|
select: {
|
||||||
id: true,
|
id: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user