@@ -22,6 +22,7 @@
|
|||||||
"@mantine/nprogress": "^7.11.0",
|
"@mantine/nprogress": "^7.11.0",
|
||||||
"@mantine/spotlight": "^7.11.0",
|
"@mantine/spotlight": "^7.11.0",
|
||||||
"@mantine/tiptap": "^7.11.0",
|
"@mantine/tiptap": "^7.11.0",
|
||||||
|
"@prisma/client": "5.16.1",
|
||||||
"@tabler/icons-react": "^3.7.0",
|
"@tabler/icons-react": "^3.7.0",
|
||||||
"@tiptap/extension-link": "^2.4.0",
|
"@tiptap/extension-link": "^2.4.0",
|
||||||
"@tiptap/react": "^2.4.0",
|
"@tiptap/react": "^2.4.0",
|
||||||
|
|||||||
@@ -12,3 +12,353 @@ datasource db {
|
|||||||
provider = "postgresql"
|
provider = "postgresql"
|
||||||
url = env("DATABASE_URL")
|
url = env("DATABASE_URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model UserRole {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
name String
|
||||||
|
desc String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
User User[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model Village {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
name String
|
||||||
|
desc String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
Group Group[]
|
||||||
|
User User[]
|
||||||
|
Annoucement Annoucement[]
|
||||||
|
Project Project[]
|
||||||
|
Division Division[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model Group {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Village Village @relation(fields: [idVillage], references: [id])
|
||||||
|
idVillage String
|
||||||
|
name String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
Position Position[]
|
||||||
|
User User[]
|
||||||
|
Project Project[]
|
||||||
|
Division Division[]
|
||||||
|
AnnoucementMember AnnoucementMember[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model Position {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Group Group @relation(fields: [idGroup], references: [id])
|
||||||
|
idGroup String
|
||||||
|
name String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
User User[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model User {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
UserRole UserRole @relation(fields: [idUserRole], references: [id])
|
||||||
|
idUserRole String
|
||||||
|
Village Village? @relation(fields: [idVillage], references: [id])
|
||||||
|
idVillage String?
|
||||||
|
Group Group? @relation(fields: [idGroup], references: [id])
|
||||||
|
idGroup String?
|
||||||
|
Position Position? @relation(fields: [idPosition], references: [id])
|
||||||
|
idPosition String?
|
||||||
|
nik String @unique
|
||||||
|
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
|
||||||
|
Annoucement Annoucement[]
|
||||||
|
Project Project[]
|
||||||
|
ProjectMember ProjectMember[]
|
||||||
|
ProjectComment ProjectComment[]
|
||||||
|
UserLog UserLog[]
|
||||||
|
Division Division[]
|
||||||
|
DivisionMember DivisionMember[]
|
||||||
|
DivisionProjectMember DivisionProjectMember[]
|
||||||
|
DivisionProjectFile DivisionProjectFile[]
|
||||||
|
DivisionDisscussion DivisionDisscussion[]
|
||||||
|
DivisionDisscussionComment DivisionDisscussionComment[]
|
||||||
|
DivisionDocumentFolderFile DivisionDocumentFolderFile[]
|
||||||
|
DivisionCalendar DivisionCalendar[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model UserLog {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
User User @relation(fields: [idUser], references: [id])
|
||||||
|
idUser String
|
||||||
|
action String
|
||||||
|
desc String @db.Text
|
||||||
|
idContent String
|
||||||
|
tbContent String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model Annoucement {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Village Village @relation(fields: [idVillage], references: [id])
|
||||||
|
idVillage String
|
||||||
|
title String
|
||||||
|
desc String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
AnnoucementMember AnnoucementMember[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model AnnoucementMember {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Annoucement Annoucement @relation(fields: [idAnnoucement], references: [id])
|
||||||
|
idAnnoucement String
|
||||||
|
Group Group @relation(fields: [idGroup], references: [id])
|
||||||
|
idGroup String
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model Project {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Village Village @relation(fields: [idVillage], references: [id])
|
||||||
|
idVillage String
|
||||||
|
Group Group @relation(fields: [idGroup], references: [id])
|
||||||
|
idGroup String
|
||||||
|
name String
|
||||||
|
desc String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
ProjectMember ProjectMember[]
|
||||||
|
ProjectFile ProjectFile[]
|
||||||
|
ProjectComment ProjectComment[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model ProjectMember {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Project Project @relation(fields: [idProject], references: [id])
|
||||||
|
idProject String
|
||||||
|
User User @relation(fields: [idUser], references: [id])
|
||||||
|
idUser String
|
||||||
|
isLeader Boolean @default(false)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model ProjectFile {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Project Project @relation(fields: [idProject], references: [id])
|
||||||
|
idProject String
|
||||||
|
name String
|
||||||
|
extension String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model ProjectComment {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Project Project @relation(fields: [idProject], references: [id])
|
||||||
|
idProject String
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
comment String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model Division {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Village Village @relation(fields: [idVillage], references: [id])
|
||||||
|
idVillage String
|
||||||
|
Group Group @relation(fields: [idGroup], references: [id])
|
||||||
|
idGroup String
|
||||||
|
name String
|
||||||
|
desc String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
DivisionMember DivisionMember[]
|
||||||
|
AnnoucementMember AnnoucementMember[]
|
||||||
|
DivisionProject DivisionProject[]
|
||||||
|
DivisionProjectTask DivisionProjectTask[]
|
||||||
|
DivisionProjectMember DivisionProjectMember[]
|
||||||
|
DivisionProjectFile DivisionProjectFile[]
|
||||||
|
DivisionDisscussion DivisionDisscussion[]
|
||||||
|
DivisionDocumentFolderFile DivisionDocumentFolderFile[]
|
||||||
|
DivisionDocumentShare DivisionDocumentShare[]
|
||||||
|
DivisionCalendar DivisionCalendar[]
|
||||||
|
DivisionCalendarReminder DivisionCalendarReminder[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionMember {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
User User @relation(fields: [idUser], references: [id])
|
||||||
|
idUser String
|
||||||
|
isAdmin Boolean @default(false)
|
||||||
|
isLeader Boolean @default(false)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionProject {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
title String
|
||||||
|
desc String @db.Text
|
||||||
|
status Int @default(0)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionProjectTask {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
title String
|
||||||
|
desc String @db.Text
|
||||||
|
status Int @default(0)
|
||||||
|
dateStart DateTime @db.Date
|
||||||
|
dateEnd DateTime @db.Date
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionProjectMember {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
User User @relation(fields: [idUser], references: [id])
|
||||||
|
idUser String
|
||||||
|
isLeader Boolean @default(false)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionProjectFile {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
name String
|
||||||
|
extension String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionDisscussion {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
title String
|
||||||
|
desc String @db.Text
|
||||||
|
status Int @default(1) // 1 = open, 2 = close
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionDisscussionComment {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
idDisscussion String
|
||||||
|
comment String @db.Text
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionDocumentFolderFile {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
category String @default("FOLDER") // FOLDER OR FILE
|
||||||
|
name String
|
||||||
|
extension String
|
||||||
|
path String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
DivisionDocumentShare DivisionDocumentShare[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionDocumentShare {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
DivisionDocumentFolderFile DivisionDocumentFolderFile @relation(fields: [idDocument], references: [id])
|
||||||
|
idDocument String
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionCalendar {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
title String
|
||||||
|
desc String @db.Text
|
||||||
|
dateStart DateTime @db.Date
|
||||||
|
dateEnd DateTime @db.Date
|
||||||
|
repeatEventTyper String
|
||||||
|
reminderInterval String
|
||||||
|
status Int @default(0)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
User User @relation(fields: [createdBy], references: [id])
|
||||||
|
createdBy String
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
DivisionCalendarReminder DivisionCalendarReminder[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model DivisionCalendarReminder {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
Division Division @relation(fields: [idDivision], references: [id])
|
||||||
|
idDivision String
|
||||||
|
DivisionCalendar DivisionCalendar @relation(fields: [idCalendar], references: [id])
|
||||||
|
idCalendar String
|
||||||
|
dateStart DateTime @db.Date
|
||||||
|
dateEnd DateTime @db.Date
|
||||||
|
status Int @default(0)
|
||||||
|
isActive Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|||||||
0
src/module/village/index.ts
Normal file
0
src/module/village/index.ts
Normal file
@@ -342,6 +342,11 @@
|
|||||||
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
|
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
|
||||||
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
||||||
|
|
||||||
|
"@prisma/client@5.16.1":
|
||||||
|
version "5.16.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.16.1.tgz#65c5649b4701c097e7fa943c91a3140ce8bf053d"
|
||||||
|
integrity sha512-wM9SKQjF0qLxdnOZIVAIMKiz6Hu7vDt4FFAih85K1dk/Rr2mdahy6d3QP41K62N9O0DJJA//gUDA3Mp49xsKIg==
|
||||||
|
|
||||||
"@prisma/debug@5.16.1":
|
"@prisma/debug@5.16.1":
|
||||||
version "5.16.1"
|
version "5.16.1"
|
||||||
resolved "https://registry.npmjs.org/@prisma/debug/-/debug-5.16.1.tgz"
|
resolved "https://registry.npmjs.org/@prisma/debug/-/debug-5.16.1.tgz"
|
||||||
@@ -3098,6 +3103,7 @@ streamsearch@^1.1.0:
|
|||||||
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
||||||
|
|
||||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
|
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
|
||||||
|
name string-width-cjs
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
||||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||||
|
|||||||
Reference in New Issue
Block a user