diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ad58a896..1ab4504c 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -12,30 +12,33 @@ datasource db { } model User { - id String @id @default(cuid()) - username String @unique - nomor String @unique - active Boolean @default(true) - createdAt DateTime? @default(now()) - updatedAt DateTime? @updatedAt - MasterUserRole MasterUserRole @relation(fields: [masterUserRoleId], references: [id]) - masterUserRoleId String @default("1") - UserSession UserSession? - Profile Profile? - Investasi Investasi[] - TransaksiInvestasi TransaksiInvestasi[] - Donasi Donasi[] - Donasi_Invoice Donasi_Invoice[] - Donasi_Notif Donasi_Notif[] - Event Event[] - Event_Peserta Event_Peserta[] - Voting Voting[] - Voting_Kontributor Voting_Kontributor[] - Job Job[] - Forum_Posting Forum_Posting[] - Forum_Komentar Forum_Komentar[] - Forum_ReportPosting Forum_ReportPosting[] - Forum_ReportKomentar Forum_ReportKomentar[] + id String @id @default(cuid()) + username String @unique + nomor String @unique + active Boolean @default(true) + createdAt DateTime? @default(now()) + updatedAt DateTime? @updatedAt + MasterUserRole MasterUserRole @relation(fields: [masterUserRoleId], references: [id]) + masterUserRoleId String @default("1") + UserSession UserSession? + Profile Profile? + Investasi Investasi[] + TransaksiInvestasi TransaksiInvestasi[] + Donasi Donasi[] + Donasi_Invoice Donasi_Invoice[] + Donasi_Notif Donasi_Notif[] + Event Event[] + Event_Peserta Event_Peserta[] + Voting Voting[] + Voting_Kontributor Voting_Kontributor[] + Job Job[] + Forum_Posting Forum_Posting[] + Forum_Komentar Forum_Komentar[] + Forum_ReportPosting Forum_ReportPosting[] + Forum_ReportKomentar Forum_ReportKomentar[] + ProjectCollaboration ProjectCollaboration[] + ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] + ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat[] } model MasterUserRole { @@ -719,3 +722,68 @@ model Forum_ReportKomentar { User User? @relation(fields: [userId], references: [id]) userId String? } + +// ========================================= PROJECT COLLABORATION ========================================= // + +model ProjectCollaboration { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + catatan String? + title String + lokasi String + purpose String @db.Text + benefit String @db.Text + + ProjectCollaborationMaster_Industri ProjectCollaborationMaster_Industri? @relation(fields: [projectCollaborationMaster_IndustriId], references: [id]) + projectCollaborationMaster_IndustriId Int? + Author User? @relation(fields: [userId], references: [id]) + userId String? + ProjectCollaborationMaster_Status ProjectCollaborationMaster_Status? @relation(fields: [projectCollaborationMaster_StatusId], references: [id]) + projectCollaborationMaster_StatusId Int? @default(1) + ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] +} + +model ProjectCollaborationMaster_Industri { + id Int @id @default(autoincrement()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + name String + + ProjectCollaboration ProjectCollaboration[] +} + +model ProjectCollaborationMaster_Status { + id Int @id @default(autoincrement()) + name String + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + ProjectCollaboration ProjectCollaboration[] +} + +model ProjectCollaboration_Partisipasi { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + User User? @relation(fields: [userId], references: [id]) + userId String? + ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id]) + projectCollaborationId String? + ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat? @relation(fields: [projectCollaboration_RoomChatId], references: [id]) + projectCollaboration_RoomChatId String? +} + +model ProjectCollaboration_RoomChat { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + Author User? @relation(fields: [userId], references: [id]) + userId String? + ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] +} diff --git a/src/app/api/seeder/route.ts b/src/app/api/seeder/route.ts index 0905f917..a4e8b71d 100644 --- a/src/app/api/seeder/route.ts +++ b/src/app/api/seeder/route.ts @@ -21,6 +21,8 @@ import voting_status from "../../../bin/seeder/voting/master_status.json"; import master_status from "../../../bin/seeder/master_status.json"; import forum_kategori_report from "../../../bin/seeder/forum/master_report.json"; import forum_status_posting from "../../../bin/seeder/forum/master_status.json"; +import collaboration_industri from "../../../bin/seeder/colab/master_industri.json"; +import collaboration_status from "../../../bin/seeder/colab/master_status.json"; export async function GET(req: Request) { const dev = new URL(req.url).searchParams.get("dev"); @@ -360,6 +362,34 @@ export async function GET(req: Request) { }); } + for (let p of collaboration_industri) { + await prisma.projectCollaborationMaster_Industri.upsert({ + where: { + id: p.id, + }, + create: { + name: p.name, + }, + update: { + name: p.name, + }, + }); + } + + for (let p of collaboration_status) { + await prisma.projectCollaborationMaster_Status.upsert({ + where: { + id: p.id, + }, + create: { + name: p.name, + }, + update: { + name: p.name, + }, + }); + } + return NextResponse.json({ success: true }); } diff --git a/src/app/dev/colab/create/page.tsx b/src/app/dev/colab/create/page.tsx index 6a530d6f..b0dcdc7c 100644 --- a/src/app/dev/colab/create/page.tsx +++ b/src/app/dev/colab/create/page.tsx @@ -1,9 +1,13 @@ import { Colab_Create } from "@/app_modules/colab"; +import colab_funGetMasterIndustri from "@/app_modules/colab/fun/master/fun_get_master_industri"; +import colab_funGetMasterStatus from "@/app_modules/colab/fun/master/fun_get_master_status"; export default async function Page() { + const listIndustri = await colab_funGetMasterIndustri(); + return ( <> - + ); } diff --git a/src/app/dev/forum/proyek/layout.tsx b/src/app/dev/forum/proyek/layout.tsx deleted file mode 100644 index 3a5cd8e4..00000000 --- a/src/app/dev/forum/proyek/layout.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import ComponentColab_HeaderTamplate from "@/app_modules/colab/component/header_tamplate"; -import { AppShell } from "@mantine/core"; -import React from "react"; - -export default async function Layout({ - children, -}: { - children: React.ReactNode; -}) { - return ( - <> - } - > - {children} - - - ); -} diff --git a/src/app/dev/forum/proyek/page.tsx b/src/app/dev/forum/proyek/page.tsx deleted file mode 100644 index 5c08e75c..00000000 --- a/src/app/dev/forum/proyek/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Colab_PartisipasiProyek } from "@/app_modules/colab"; - -export default async function Page() { - return ( - <> - - - ); -} diff --git a/src/app_modules/colab/create/index.tsx b/src/app_modules/colab/create/index.tsx index 5d86c700..57589bb3 100644 --- a/src/app_modules/colab/create/index.tsx +++ b/src/app_modules/colab/create/index.tsx @@ -4,8 +4,23 @@ import { RouterColab } from "@/app/lib/router_hipmi/router_colab"; import { Button, Select, Stack, TextInput, Textarea } from "@mantine/core"; import { useRouter } from "next/navigation"; import { useState } from "react"; +import { MODEL_COLLABORATION_MASTER } from "../model/interface"; +import colab_funCreateProyek from "../fun/create/fun_create_proyek"; +import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil"; +import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/notif_global/notifikasi_gagal"; -export default function Colab_Create() { +export default function Colab_Create({ + listIndustri, +}: { + listIndustri: MODEL_COLLABORATION_MASTER[]; +}) { + const [value, setValue] = useState({ + title: "", + lokasi: "", + purpose: "", + benefit: "", + projectCollaborationMaster_IndustriId: 0, + }); return ( <> @@ -13,22 +28,40 @@ export default function Colab_Create() { label="Judul" withAsterisk placeholder="Masukan judul proyek" + onChange={(val) => { + setValue({ + ...value, + title: val.currentTarget.value, + }); + }} /> { + setValue({ + ...value, + lokasi: val.currentTarget.value, + }); + }} />