diff --git a/package.json b/package.json index 6480c30c..40418346 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "mqtt": "^5.5.0", "next": "^13.5.4-canary.8", "next-dev": "^1.1.9", + "next-scroll-loader": "^1.0.5", "postcss": "8.4.27", "react": "18.2.0", "react-countdown": "^2.3.5", diff --git a/prisma/migrations/20240610082419_new_notification/migration.sql b/prisma/migrations/20240610082419_new_notification/migration.sql new file mode 100644 index 00000000..24d16daa --- /dev/null +++ b/prisma/migrations/20240610082419_new_notification/migration.sql @@ -0,0 +1,820 @@ +/* + Warnings: + + - You are about to drop the `Katalog` table. If the table is not empty, all the data it contains will be lost. + - A unique constraint covering the columns `[imagesBackgroundId]` on the table `Profile` will be added. If there are existing duplicate values, this will fail. + +*/ +-- DropForeignKey +ALTER TABLE "Katalog" DROP CONSTRAINT "Katalog_masterBidangBisnisId_fkey"; + +-- DropForeignKey +ALTER TABLE "Katalog" DROP CONSTRAINT "Katalog_profileId_fkey"; + +-- AlterTable +ALTER TABLE "Images" ADD COLUMN "label" TEXT NOT NULL DEFAULT 'null'; + +-- AlterTable +ALTER TABLE "Profile" ADD COLUMN "imagesBackgroundId" TEXT; + +-- DropTable +DROP TABLE "Katalog"; + +-- CreateTable +CREATE TABLE "KodeOtp" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "nomor" TEXT NOT NULL, + "otp" INTEGER NOT NULL, + + CONSTRAINT "KodeOtp_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ImagesBackground" ( + "id" TEXT NOT NULL, + "url" TEXT NOT NULL, + "label" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "ImagesBackground_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Portofolio" ( + "id" TEXT NOT NULL, + "id_Portofolio" TEXT NOT NULL, + "namaBisnis" TEXT NOT NULL, + "alamatKantor" TEXT NOT NULL, + "tlpn" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "profileId" TEXT, + "masterBidangBisnisId" TEXT NOT NULL, + "logoId" TEXT, + + CONSTRAINT "Portofolio_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Portofolio_MediaSosial" ( + "id" TEXT NOT NULL, + "facebook" TEXT, + "twitter" TEXT, + "instagram" TEXT, + "tiktok" TEXT, + "youtube" TEXT, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "portofolioId" TEXT, + + CONSTRAINT "Portofolio_MediaSosial_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterStatus" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "MasterStatus_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "target" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "publishTime" TIMESTAMP(3), + "catatan" TEXT, + "progres" TEXT DEFAULT '0', + "terkumpul" TEXT DEFAULT '0', + "namaBank" TEXT, + "rekening" TEXT, + "akumulasiPencairan" INTEGER DEFAULT 0, + "totalPencairan" INTEGER DEFAULT 0, + "authorId" TEXT, + "imagesId" TEXT, + "donasiMaster_KategoriId" TEXT, + "donasiMaster_DurasiId" TEXT, + "donasiMaster_StatusDonasiId" TEXT DEFAULT '2', + + CONSTRAINT "Donasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_TemporaryCreate" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "target" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "imagesId" TEXT, + "donasiMaster_KategoriId" TEXT, + "donasiMaster_DurasiId" TEXT, + + CONSTRAINT "Donasi_TemporaryCreate_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DonasiMaster_Kategori" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "DonasiMaster_Kategori_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DonasiMaster_Durasi" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "DonasiMaster_Durasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_Cerita" ( + "id" TEXT NOT NULL, + "pembukaan" TEXT NOT NULL, + "cerita" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "imagesId" TEXT, + "donasiId" TEXT, + + CONSTRAINT "Donasi_Cerita_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DonasiMaster_StatusDonasi" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "DonasiMaster_StatusDonasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DonasiMaster_Bank" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "norek" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "DonasiMaster_Bank_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DonasiMaster_StatusInvoice" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "DonasiMaster_StatusInvoice_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_Invoice" ( + "id" TEXT NOT NULL, + "nominal" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "donasiId" TEXT, + "donasiMaster_BankId" TEXT, + "donasiMaster_StatusInvoiceId" TEXT DEFAULT '3', + "authorId" TEXT, + "imagesId" TEXT, + + CONSTRAINT "Donasi_Invoice_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_Kabar" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "donasiId" TEXT, + "imagesId" TEXT, + + CONSTRAINT "Donasi_Kabar_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_Notif" ( + "id" TEXT NOT NULL, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT, + "donasi_KabarId" TEXT, + + CONSTRAINT "Donasi_Notif_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Donasi_PencairanDana" ( + "id" TEXT NOT NULL, + "nominalCair" INTEGER NOT NULL, + "title" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "donasiId" TEXT, + "imagesId" TEXT, + + CONSTRAINT "Donasi_PencairanDana_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Event" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "lokasi" TEXT NOT NULL, + "tanggal" TIMESTAMP(3) NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "catatan" TEXT, + "authorId" TEXT, + "eventMaster_StatusId" TEXT DEFAULT '2', + "eventMaster_TipeAcaraId" INTEGER, + + CONSTRAINT "Event_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "EventMaster_TipeAcara" ( + "id" SERIAL NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "EventMaster_TipeAcara_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "EventMaster_Status" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "EventMaster_Status_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Event_Peserta" ( + "id" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "eventId" TEXT, + "userId" TEXT, + + CONSTRAINT "Event_Peserta_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Voting" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "title" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "awalVote" TIMESTAMP(3) NOT NULL, + "akhirVote" TIMESTAMP(3) NOT NULL, + "catatan" TEXT, + "authorId" TEXT NOT NULL, + "voting_StatusId" TEXT DEFAULT '2', + + CONSTRAINT "Voting_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Voting_Status" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Voting_Status_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Voting_DaftarNamaVote" ( + "id" TEXT NOT NULL, + "value" TEXT NOT NULL, + "jumlah" INTEGER NOT NULL DEFAULT 0, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "votingId" TEXT, + + CONSTRAINT "Voting_DaftarNamaVote_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Voting_Kontributor" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "votingId" TEXT, + "authorId" TEXT, + "voting_DaftarNamaVoteId" TEXT, + + CONSTRAINT "Voting_Kontributor_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Job" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "isArsip" BOOLEAN NOT NULL DEFAULT false, + "catatan" TEXT, + "title" TEXT NOT NULL, + "content" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "imagesId" TEXT, + "authorId" TEXT, + "masterStatusId" TEXT DEFAULT '2', + + CONSTRAINT "Job_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ForumMaster_StatusPosting" ( + "id" SERIAL NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "status" TEXT NOT NULL, + + CONSTRAINT "ForumMaster_StatusPosting_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Forum_Posting" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "publishAt" TIMESTAMP(3), + "diskusi" TEXT NOT NULL, + "authorId" TEXT, + "forumMaster_StatusPostingId" INTEGER, + + CONSTRAINT "Forum_Posting_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Forum_Komentar" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "komentar" TEXT NOT NULL, + "forum_PostingId" TEXT, + "authorId" TEXT, + + CONSTRAINT "Forum_Komentar_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ForumMaster_KategoriReport" ( + "id" SERIAL NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "title" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + + CONSTRAINT "ForumMaster_KategoriReport_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Forum_ReportPosting" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "deskripsi" TEXT, + "forumMaster_KategoriReportId" INTEGER, + "forum_PostingId" TEXT, + "userId" TEXT, + + CONSTRAINT "Forum_ReportPosting_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Forum_ReportKomentar" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "deskripsi" TEXT, + "forumMaster_KategoriReportId" INTEGER, + "forum_KomentarId" TEXT, + "userId" TEXT, + + CONSTRAINT "Forum_ReportKomentar_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "title" TEXT NOT NULL, + "lokasi" TEXT NOT NULL, + "purpose" TEXT NOT NULL, + "benefit" TEXT, + "isReject" BOOLEAN DEFAULT false, + "report" TEXT, + "projectCollaborationMaster_IndustriId" INTEGER, + "userId" TEXT, + "projectCollaborationMaster_StatusId" INTEGER DEFAULT 1, + + CONSTRAINT "ProjectCollaboration_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaborationMaster_Industri" ( + "id" SERIAL NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "name" TEXT NOT NULL, + + CONSTRAINT "ProjectCollaborationMaster_Industri_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaborationMaster_Status" ( + "id" SERIAL NOT NULL, + "name" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "ProjectCollaborationMaster_Status_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration_Partisipasi" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT, + "projectCollaborationId" TEXT, + "deskripsi_diri" TEXT NOT NULL, + + CONSTRAINT "ProjectCollaboration_Partisipasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration_RoomChat" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT, + "projectCollaborationId" TEXT, + + CONSTRAINT "ProjectCollaboration_RoomChat_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration_AnggotaRoomChat" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT NOT NULL, + "projectCollaboration_RoomChatId" TEXT, + + CONSTRAINT "ProjectCollaboration_AnggotaRoomChat_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration_Message" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "message" TEXT NOT NULL, + "isFile" BOOLEAN DEFAULT false, + "userId" TEXT, + "projectCollaboration_RoomChatId" TEXT, + + CONSTRAINT "ProjectCollaboration_Message_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProjectCollaboration_Notifikasi" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "note" TEXT, + "projectCollaborationId" TEXT NOT NULL, + "adminId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + + CONSTRAINT "ProjectCollaboration_Notifikasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "NomorAdmin" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "nomor" TEXT NOT NULL, + + CONSTRAINT "NomorAdmin_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Notifikasi" ( + "id" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "appId" TEXT NOT NULL, + "kategoriApp" TEXT NOT NULL, + "pesan" TEXT NOT NULL, + "title" TEXT, + "status" TEXT, + "userRoleId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "adminId" TEXT NOT NULL, + + CONSTRAINT "Notifikasi_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Portofolio_id_Portofolio_key" ON "Portofolio"("id_Portofolio"); + +-- CreateIndex +CREATE UNIQUE INDEX "Portofolio_MediaSosial_portofolioId_key" ON "Portofolio_MediaSosial"("portofolioId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Donasi_imagesId_key" ON "Donasi"("imagesId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Donasi_TemporaryCreate_imagesId_key" ON "Donasi_TemporaryCreate"("imagesId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Donasi_Cerita_imagesId_key" ON "Donasi_Cerita"("imagesId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Donasi_Cerita_donasiId_key" ON "Donasi_Cerita"("donasiId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Profile_imagesBackgroundId_key" ON "Profile"("imagesBackgroundId"); + +-- AddForeignKey +ALTER TABLE "Profile" ADD CONSTRAINT "Profile_imagesBackgroundId_fkey" FOREIGN KEY ("imagesBackgroundId") REFERENCES "ImagesBackground"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Portofolio" ADD CONSTRAINT "Portofolio_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "Profile"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Portofolio" ADD CONSTRAINT "Portofolio_masterBidangBisnisId_fkey" FOREIGN KEY ("masterBidangBisnisId") REFERENCES "MasterBidangBisnis"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Portofolio" ADD CONSTRAINT "Portofolio_logoId_fkey" FOREIGN KEY ("logoId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Portofolio_MediaSosial" ADD CONSTRAINT "Portofolio_MediaSosial_portofolioId_fkey" FOREIGN KEY ("portofolioId") REFERENCES "Portofolio"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi" ADD CONSTRAINT "Donasi_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi" ADD CONSTRAINT "Donasi_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi" ADD CONSTRAINT "Donasi_donasiMaster_KategoriId_fkey" FOREIGN KEY ("donasiMaster_KategoriId") REFERENCES "DonasiMaster_Kategori"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi" ADD CONSTRAINT "Donasi_donasiMaster_DurasiId_fkey" FOREIGN KEY ("donasiMaster_DurasiId") REFERENCES "DonasiMaster_Durasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi" ADD CONSTRAINT "Donasi_donasiMaster_StatusDonasiId_fkey" FOREIGN KEY ("donasiMaster_StatusDonasiId") REFERENCES "DonasiMaster_StatusDonasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_TemporaryCreate" ADD CONSTRAINT "Donasi_TemporaryCreate_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_TemporaryCreate" ADD CONSTRAINT "Donasi_TemporaryCreate_donasiMaster_KategoriId_fkey" FOREIGN KEY ("donasiMaster_KategoriId") REFERENCES "DonasiMaster_Kategori"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_TemporaryCreate" ADD CONSTRAINT "Donasi_TemporaryCreate_donasiMaster_DurasiId_fkey" FOREIGN KEY ("donasiMaster_DurasiId") REFERENCES "DonasiMaster_Durasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Cerita" ADD CONSTRAINT "Donasi_Cerita_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Cerita" ADD CONSTRAINT "Donasi_Cerita_donasiId_fkey" FOREIGN KEY ("donasiId") REFERENCES "Donasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Invoice" ADD CONSTRAINT "Donasi_Invoice_donasiId_fkey" FOREIGN KEY ("donasiId") REFERENCES "Donasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Invoice" ADD CONSTRAINT "Donasi_Invoice_donasiMaster_BankId_fkey" FOREIGN KEY ("donasiMaster_BankId") REFERENCES "DonasiMaster_Bank"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Invoice" ADD CONSTRAINT "Donasi_Invoice_donasiMaster_StatusInvoiceId_fkey" FOREIGN KEY ("donasiMaster_StatusInvoiceId") REFERENCES "DonasiMaster_StatusInvoice"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Invoice" ADD CONSTRAINT "Donasi_Invoice_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Invoice" ADD CONSTRAINT "Donasi_Invoice_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Kabar" ADD CONSTRAINT "Donasi_Kabar_donasiId_fkey" FOREIGN KEY ("donasiId") REFERENCES "Donasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Kabar" ADD CONSTRAINT "Donasi_Kabar_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Notif" ADD CONSTRAINT "Donasi_Notif_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_Notif" ADD CONSTRAINT "Donasi_Notif_donasi_KabarId_fkey" FOREIGN KEY ("donasi_KabarId") REFERENCES "Donasi_Kabar"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_PencairanDana" ADD CONSTRAINT "Donasi_PencairanDana_donasiId_fkey" FOREIGN KEY ("donasiId") REFERENCES "Donasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Donasi_PencairanDana" ADD CONSTRAINT "Donasi_PencairanDana_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Event" ADD CONSTRAINT "Event_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Event" ADD CONSTRAINT "Event_eventMaster_StatusId_fkey" FOREIGN KEY ("eventMaster_StatusId") REFERENCES "EventMaster_Status"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Event" ADD CONSTRAINT "Event_eventMaster_TipeAcaraId_fkey" FOREIGN KEY ("eventMaster_TipeAcaraId") REFERENCES "EventMaster_TipeAcara"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Event_Peserta" ADD CONSTRAINT "Event_Peserta_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Event_Peserta" ADD CONSTRAINT "Event_Peserta_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting" ADD CONSTRAINT "Voting_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting" ADD CONSTRAINT "Voting_voting_StatusId_fkey" FOREIGN KEY ("voting_StatusId") REFERENCES "Voting_Status"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting_DaftarNamaVote" ADD CONSTRAINT "Voting_DaftarNamaVote_votingId_fkey" FOREIGN KEY ("votingId") REFERENCES "Voting"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting_Kontributor" ADD CONSTRAINT "Voting_Kontributor_votingId_fkey" FOREIGN KEY ("votingId") REFERENCES "Voting"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting_Kontributor" ADD CONSTRAINT "Voting_Kontributor_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Voting_Kontributor" ADD CONSTRAINT "Voting_Kontributor_voting_DaftarNamaVoteId_fkey" FOREIGN KEY ("voting_DaftarNamaVoteId") REFERENCES "Voting_DaftarNamaVote"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Job" ADD CONSTRAINT "Job_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Job" ADD CONSTRAINT "Job_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Job" ADD CONSTRAINT "Job_masterStatusId_fkey" FOREIGN KEY ("masterStatusId") REFERENCES "MasterStatus"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_Posting" ADD CONSTRAINT "Forum_Posting_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_Posting" ADD CONSTRAINT "Forum_Posting_forumMaster_StatusPostingId_fkey" FOREIGN KEY ("forumMaster_StatusPostingId") REFERENCES "ForumMaster_StatusPosting"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_Komentar" ADD CONSTRAINT "Forum_Komentar_forum_PostingId_fkey" FOREIGN KEY ("forum_PostingId") REFERENCES "Forum_Posting"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_Komentar" ADD CONSTRAINT "Forum_Komentar_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportPosting" ADD CONSTRAINT "Forum_ReportPosting_forumMaster_KategoriReportId_fkey" FOREIGN KEY ("forumMaster_KategoriReportId") REFERENCES "ForumMaster_KategoriReport"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportPosting" ADD CONSTRAINT "Forum_ReportPosting_forum_PostingId_fkey" FOREIGN KEY ("forum_PostingId") REFERENCES "Forum_Posting"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportPosting" ADD CONSTRAINT "Forum_ReportPosting_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportKomentar" ADD CONSTRAINT "Forum_ReportKomentar_forumMaster_KategoriReportId_fkey" FOREIGN KEY ("forumMaster_KategoriReportId") REFERENCES "ForumMaster_KategoriReport"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportKomentar" ADD CONSTRAINT "Forum_ReportKomentar_forum_KomentarId_fkey" FOREIGN KEY ("forum_KomentarId") REFERENCES "Forum_Komentar"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Forum_ReportKomentar" ADD CONSTRAINT "Forum_ReportKomentar_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration" ADD CONSTRAINT "ProjectCollaboration_projectCollaborationMaster_IndustriId_fkey" FOREIGN KEY ("projectCollaborationMaster_IndustriId") REFERENCES "ProjectCollaborationMaster_Industri"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration" ADD CONSTRAINT "ProjectCollaboration_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration" ADD CONSTRAINT "ProjectCollaboration_projectCollaborationMaster_StatusId_fkey" FOREIGN KEY ("projectCollaborationMaster_StatusId") REFERENCES "ProjectCollaborationMaster_Status"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Partisipasi" ADD CONSTRAINT "ProjectCollaboration_Partisipasi_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Partisipasi" ADD CONSTRAINT "ProjectCollaboration_Partisipasi_projectCollaborationId_fkey" FOREIGN KEY ("projectCollaborationId") REFERENCES "ProjectCollaboration"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_RoomChat" ADD CONSTRAINT "ProjectCollaboration_RoomChat_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_RoomChat" ADD CONSTRAINT "ProjectCollaboration_RoomChat_projectCollaborationId_fkey" FOREIGN KEY ("projectCollaborationId") REFERENCES "ProjectCollaboration"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_AnggotaRoomChat" ADD CONSTRAINT "ProjectCollaboration_AnggotaRoomChat_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_AnggotaRoomChat" ADD CONSTRAINT "ProjectCollaboration_AnggotaRoomChat_projectCollaboration__fkey" FOREIGN KEY ("projectCollaboration_RoomChatId") REFERENCES "ProjectCollaboration_RoomChat"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Message" ADD CONSTRAINT "ProjectCollaboration_Message_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Message" ADD CONSTRAINT "ProjectCollaboration_Message_projectCollaboration_RoomChat_fkey" FOREIGN KEY ("projectCollaboration_RoomChatId") REFERENCES "ProjectCollaboration_RoomChat"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Notifikasi" ADD CONSTRAINT "ProjectCollaboration_Notifikasi_projectCollaborationId_fkey" FOREIGN KEY ("projectCollaborationId") REFERENCES "ProjectCollaboration"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Notifikasi" ADD CONSTRAINT "AdminNotifProjectUser" FOREIGN KEY ("adminId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProjectCollaboration_Notifikasi" ADD CONSTRAINT "UserNotifProjectUser" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Notifikasi" ADD CONSTRAINT "Notifikasi_userRoleId_fkey" FOREIGN KEY ("userRoleId") REFERENCES "MasterUserRole"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Notifikasi" ADD CONSTRAINT "NotifikasiUser" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Notifikasi" ADD CONSTRAINT "NotifikasiAdmin" FOREIGN KEY ("adminId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/public/job/085b304e-7ec8-4581-9897-cf6da87ace02.png b/public/job/085b304e-7ec8-4581-9897-cf6da87ace02.png new file mode 100644 index 00000000..f1aa5b43 Binary files /dev/null and b/public/job/085b304e-7ec8-4581-9897-cf6da87ace02.png differ diff --git a/public/job/19681f45-09bd-4ab3-9756-ce3ab7e6a2a7.jpg b/public/job/19681f45-09bd-4ab3-9756-ce3ab7e6a2a7.jpg new file mode 100644 index 00000000..4204a23e Binary files /dev/null and b/public/job/19681f45-09bd-4ab3-9756-ce3ab7e6a2a7.jpg differ diff --git a/public/job/8de58603-2b20-43b7-a847-b64979fb72bb.jpg b/public/job/8de58603-2b20-43b7-a847-b64979fb72bb.jpg new file mode 100644 index 00000000..1006efb3 Binary files /dev/null and b/public/job/8de58603-2b20-43b7-a847-b64979fb72bb.jpg differ diff --git a/public/job/d643b552-9dd9-4f28-a5cc-3cdaa38b651a.jpg b/public/job/d643b552-9dd9-4f28-a5cc-3cdaa38b651a.jpg new file mode 100644 index 00000000..4204a23e Binary files /dev/null and b/public/job/d643b552-9dd9-4f28-a5cc-3cdaa38b651a.jpg differ diff --git a/public/job/e8df686f-85a7-4c7e-a10d-177744ecbb79.jpg b/public/job/e8df686f-85a7-4c7e-a10d-177744ecbb79.jpg new file mode 100644 index 00000000..1006efb3 Binary files /dev/null and b/public/job/e8df686f-85a7-4c7e-a10d-177744ecbb79.jpg differ diff --git a/public/profile/background/5d562f91-31e1-42bf-b7a6-bde6657ee488.jpeg b/public/profile/background/5d562f91-31e1-42bf-b7a6-bde6657ee488.jpeg deleted file mode 100644 index 8cd38350..00000000 Binary files a/public/profile/background/5d562f91-31e1-42bf-b7a6-bde6657ee488.jpeg and /dev/null differ diff --git a/public/profile/background/55756bbd-9cc2-40c6-b0c0-75cb0456dcda.jpeg b/public/profile/background/c5387b1b-a1da-4e0a-9961-e00cbe454b69.jpeg similarity index 100% rename from public/profile/background/55756bbd-9cc2-40c6-b0c0-75cb0456dcda.jpeg rename to public/profile/background/c5387b1b-a1da-4e0a-9961-e00cbe454b69.jpeg diff --git a/public/profile/background/98c0e877-a951-49c4-99cf-27c36eb026b6.jpeg b/public/profile/background/c9eb5476-197d-4569-82a3-45e1e9226acf.jpeg similarity index 100% rename from public/profile/background/98c0e877-a951-49c4-99cf-27c36eb026b6.jpeg rename to public/profile/background/c9eb5476-197d-4569-82a3-45e1e9226acf.jpeg diff --git a/public/profile/background/d61449e7-3f26-42e3-bc37-d269fc70f5d1.jpeg b/public/profile/background/d61449e7-3f26-42e3-bc37-d269fc70f5d1.jpeg deleted file mode 100644 index 8a84a01d..00000000 Binary files a/public/profile/background/d61449e7-3f26-42e3-bc37-d269fc70f5d1.jpeg and /dev/null differ diff --git a/public/profile/foto/9319cabd-e485-44ea-b186-7c08616c00fe.jpeg b/public/profile/foto/6b616896-18b4-4d16-9f25-84332fb0679b.jpeg similarity index 100% rename from public/profile/foto/9319cabd-e485-44ea-b186-7c08616c00fe.jpeg rename to public/profile/foto/6b616896-18b4-4d16-9f25-84332fb0679b.jpeg diff --git a/public/profile/foto/6d051a4b-1531-48ff-94fb-6a24f5b3840d.jpeg b/public/profile/foto/6d051a4b-1531-48ff-94fb-6a24f5b3840d.jpeg deleted file mode 100644 index 4c3167d8..00000000 Binary files a/public/profile/foto/6d051a4b-1531-48ff-94fb-6a24f5b3840d.jpeg and /dev/null differ diff --git a/public/profile/foto/c4f60cf5-da43-4f1b-9ca0-0717163e87b3.jpeg b/public/profile/foto/c4f60cf5-da43-4f1b-9ca0-0717163e87b3.jpeg deleted file mode 100644 index af6599d6..00000000 Binary files a/public/profile/foto/c4f60cf5-da43-4f1b-9ca0-0717163e87b3.jpeg and /dev/null differ diff --git a/public/profile/foto/627e7971-d74e-4d98-b69f-40b227f4e16a.jpeg b/public/profile/foto/dd539470-959e-4063-aa78-86626bd185be.jpeg similarity index 100% rename from public/profile/foto/627e7971-d74e-4d98-b69f-40b227f4e16a.jpeg rename to public/profile/foto/dd539470-959e-4063-aa78-86626bd185be.jpeg diff --git a/src/app/api/admin/notifikasi/route.ts b/src/app/api/admin/notifikasi/route.ts new file mode 100644 index 00000000..4847fb76 --- /dev/null +++ b/src/app/api/admin/notifikasi/route.ts @@ -0,0 +1,8 @@ +import adminNotifikasi_getByUserId from "@/app_modules/admin/notifikasi/fun/get/get_notifikasi_by_user_id"; +import { NextRequest, NextResponse } from "next/server"; + +export async function GET(req: NextRequest) { + + + return NextResponse.json({ success: true }); +} diff --git a/src/app/dev/admin/job/child/publish/page.tsx b/src/app/dev/admin/job/child/publish/page.tsx index aac17371..28a18d68 100644 --- a/src/app/dev/admin/job/child/publish/page.tsx +++ b/src/app/dev/admin/job/child/publish/page.tsx @@ -1,12 +1,13 @@ import { AdminJob_TablePublish } from "@/app_modules/admin/job"; +import adminJob_getListPublish from "@/app_modules/admin/job/fun/get/get_list_publish"; import { AdminJob_getListTableByStatusId } from "@/app_modules/admin/job/fun/get/get_list_table_by_status_id"; export default async function Page() { - const listPublish = await AdminJob_getListTableByStatusId("1") - // console.log(listPublish) + const listPublish = await adminJob_getListPublish({page: 1}) + return ( <> - + ); } \ No newline at end of file diff --git a/src/app/dev/admin/job/child/reject/page.tsx b/src/app/dev/admin/job/child/reject/page.tsx index 5c64b2e5..79160dd7 100644 --- a/src/app/dev/admin/job/child/reject/page.tsx +++ b/src/app/dev/admin/job/child/reject/page.tsx @@ -1,13 +1,13 @@ import { AdminJob_TableReject } from "@/app_modules/admin/job"; +import adminJob_getListReject from "@/app_modules/admin/job/fun/get/get_list_reject"; import { AdminJob_getListTableByStatusId } from "@/app_modules/admin/job/fun/get/get_list_table_by_status_id"; - export default async function Page() { - const listReject = await AdminJob_getListTableByStatusId("4"); + const listReject = await adminJob_getListReject({ page: 1 }); return ( <> - + ); } diff --git a/src/app/dev/admin/job/child/review/page.tsx b/src/app/dev/admin/job/child/review/page.tsx index 75450adc..55838522 100644 --- a/src/app/dev/admin/job/child/review/page.tsx +++ b/src/app/dev/admin/job/child/review/page.tsx @@ -1,11 +1,13 @@ import { AdminJob_TableReview } from "@/app_modules/admin/job"; +import adminJob_getListReview from "@/app_modules/admin/job/fun/get/get_list_review"; import { AdminJob_getListTableByStatusId } from "@/app_modules/admin/job/fun/get/get_list_table_by_status_id"; export default async function Page() { - const listReview = await AdminJob_getListTableByStatusId("2"); + const dataReview = await adminJob_getListReview({ page: 1 }); + return ( <> - + ); } diff --git a/src/app/dev/admin/job/detail/poster/[id]/page.tsx b/src/app/dev/admin/job/detail/poster/[id]/page.tsx new file mode 100644 index 00000000..aae0ccb7 --- /dev/null +++ b/src/app/dev/admin/job/detail/poster/[id]/page.tsx @@ -0,0 +1,10 @@ +import { AdminJob_DetailPoster } from "@/app_modules/admin/job"; + +export default async function Page({ params }: { params: { id: string } }) { + const imageId = params.id; + return ( + <> + + + ); +} diff --git a/src/app/dev/home/layout.tsx b/src/app/dev/home/layout.tsx index c7662f18..4e254330 100644 --- a/src/app/dev/home/layout.tsx +++ b/src/app/dev/home/layout.tsx @@ -1,15 +1,20 @@ import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { HomeLayout } from "@/app_modules/home"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id"; +import notifikasi_countUserNotifikasi from "@/app_modules/notifikasi/fun/count/fun_count_by_id"; import { redirect } from "next/navigation"; export default async function Layout({ children }: { children: any }) { const userId = await user_getOneUserId(); const dataUser = await user_getOneByUserId(userId); + const countNotifikasi = await notifikasi_countUserNotifikasi(); + return ( <> - {children} + + {children} + ); } diff --git a/src/app/dev/notifikasi/page.tsx b/src/app/dev/notifikasi/page.tsx index b9e899d2..2ee83bdc 100644 --- a/src/app/dev/notifikasi/page.tsx +++ b/src/app/dev/notifikasi/page.tsx @@ -1,9 +1,13 @@ -import { Notifikasi_MainView } from "@/app_modules/admin/notifikasi"; +import { Notifikasi_MainView } from "@/app_modules/notifikasi"; +import notifikasi_getByUserId from "@/app_modules/notifikasi/fun/get/get_notifiaksi_by_id"; + export default async function Page() { + const listNotifikasi = await notifikasi_getByUserId() + return ( <> - + ); } diff --git a/src/app/lib/router_admin/router_admin_job.ts b/src/app/lib/router_admin/router_admin_job.ts index 655ad3c2..3379f9b3 100644 --- a/src/app/lib/router_admin/router_admin_job.ts +++ b/src/app/lib/router_admin/router_admin_job.ts @@ -4,4 +4,5 @@ export const RouterAdminJob = { review: "/dev/admin/job/child/review", reject: "/dev/admin/job/child/reject", arsip: "/dev/admin/job/child/arsip", + detail_poster: "/dev/admin/job/detail/poster/", }; diff --git a/src/app_modules/admin/job/child/publish/index.tsx b/src/app_modules/admin/job/child/publish/index.tsx index ec5da27f..57e97917 100644 --- a/src/app_modules/admin/job/child/publish/index.tsx +++ b/src/app_modules/admin/job/child/publish/index.tsx @@ -1,60 +1,98 @@ "use client"; -import { RouterJob } from "@/app/lib/router_hipmi/router_job"; +import { RouterAdminJob } from "@/app/lib/router_admin/router_admin_job"; import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/component_global/header_tamplate"; import { MODEL_JOB } from "@/app_modules/job/model/interface"; import { - Avatar, Badge, - Box, Button, - Card, Center, - Divider, - Grid, Group, - Image, - Modal, + Pagination, Paper, ScrollArea, Spoiler, Stack, Table, Text, - Title, + TextInput, + Title } from "@mantine/core"; -import { useDisclosure } from "@mantine/hooks"; -import { IconBan, IconEyeCheck, IconEyeShare } from "@tabler/icons-react"; -import _ from "lodash"; +import { + IconEyeCheck, + IconSearch +} from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; +import adminJob_getListPublish from "../../fun/get/get_list_publish"; +import { IconPhotoCheck } from "@tabler/icons-react"; export default function AdminJob_TablePublish({ - dataVote, + dataPublish, }: { - dataVote?: any; + dataPublish: any; }) { return ( <> - - + + ); } -function TableStatus({ listReview }: { listReview: MODEL_JOB[] }) { +function TableStatus({ dataPublish }: { dataPublish: any }) { const router = useRouter(); - const [opened, { open, close }] = useDisclosure(false); - const [data, setData] = useState(listReview); - const [img, setImg] = useState(""); + + const [data, setData] = useState(dataPublish.data); + const [nPage, setNPage] = useState(dataPublish.nPage); + const [activePage, setActivePage] = useState(1); + const [isSearch, setSearch] = useState(""); + + + async function onSearch(s: string) { + setSearch(s); + setActivePage(1); + const loadData = await adminJob_getListPublish({ + page: 1, + search: s, + }); + setData(loadData.data as any); + setNPage(loadData.nPage); + } + + async function onPageClick(p: any) { + setActivePage(p); + const loadData = await adminJob_getListPublish({ + search: isSearch, + page: p, + }); + setData(loadData.data as any); + setNPage(loadData.nPage); + } const TableRows = data?.map((e, i) => ( + +
+ {e?.Author?.username} +
+ + +
+ + {e?.isArsip ? ( + Arsip + ) : ( + Publish + )} + +
+ -
+
{e.imagesId ? ( ) : ( -
+
Tidak ada poster @@ -110,62 +147,78 @@ function TableStatus({ listReview }: { listReview: MODEL_JOB[] }) { return ( <> - -
- Foto -
-
+ - - - - PUBLISH + <Stack spacing={"xs"} h={"100%"}> + {/* <pre>{JSON.stringify(listUser, null, 2)}</pre> */} + <Group + position="apart" + bg={"green.4"} + p={"xs"} + style={{ borderRadius: "6px" }} + > + <Title order={4} c={"white"}> + Publish - - - - - - - - - - - - {TableRows} -
-
Judul
-
-
Poster
-
-
Syarat Ketentuan
-
-
Deskripsi
-
-
-
- {_.isEmpty(TableRows) ? ( -
- Tidak Ada Data -
- ) : ( - "" - )} -
-
- {/*
{JSON.stringify(data, null, 2)}
*/} + } + radius={"xl"} + placeholder="Masukan judul" + onChange={(val) => { + onSearch(val.currentTarget.value); + }} + /> + + + + + + + + + + + + + + + + {TableRows} +
+
Author
+
+
Status
+
+ Judul + +
Poster
+
+ Syarat Ketentuan + + Deskripsi +
+
+
+ { + onPageClick(val); + }} + /> +
+
+ + + ); } diff --git a/src/app_modules/admin/job/child/reject/index.tsx b/src/app_modules/admin/job/child/reject/index.tsx index 4ca9cecd..c18e3829 100644 --- a/src/app_modules/admin/job/child/reject/index.tsx +++ b/src/app_modules/admin/job/child/reject/index.tsx @@ -1,60 +1,90 @@ "use client"; -import { RouterJob } from "@/app/lib/router_hipmi/router_job"; +import { RouterAdminJob } from "@/app/lib/router_admin/router_admin_job"; import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/component_global/header_tamplate"; +import ComponentGlobal_InputCountDown from "@/app_modules/component_global/input_countdown"; +import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil"; +import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/notif_global/notifikasi_gagal"; import { MODEL_JOB } from "@/app_modules/job/model/interface"; import { - Avatar, - Badge, - Box, Button, - Card, Center, - Divider, - Grid, Group, - Image, Modal, + Pagination, Paper, ScrollArea, Spoiler, Stack, Table, Text, + TextInput, Textarea, Title, } from "@mantine/core"; -import { useDisclosure } from "@mantine/hooks"; -import { IconBan, IconEyeCheck, IconEyeShare } from "@tabler/icons-react"; -import _ from "lodash"; +import { IconBan, IconPhotoCheck, IconSearch } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { AdminJob_funEditCatatanById } from "../../fun/edit/fun_edit_catatan_by_id"; +import adminJob_getListReject from "../../fun/get/get_list_reject"; import { AdminJob_getListTableByStatusId } from "../../fun/get/get_list_table_by_status_id"; -import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil"; -import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/component_global/notif_global/notifikasi_gagal"; +import mqtt_client from "@/util/mqtt_client"; +import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user"; -export default function AdminJob_TableReject({ dataVote }: { dataVote?: any }) { +export default function AdminJob_TableReject({ + dataReject, +}: { + dataReject: any; +}) { return ( <> - - + + ); } -function TableStatus({ listReject }: { listReject: MODEL_JOB[] }) { - const [opened, { open, close }] = useDisclosure(false); - const [data, setData] = useState(listReject); +function TableStatus({ listReject }: { listReject: any }) { + const router = useRouter(); + const [data, setData] = useState(listReject.data); + const [nPage, setNPage] = useState(listReject.nPage); + const [activePage, setActivePage] = useState(1); + const [isSearch, setSearch] = useState(""); + const [reject, setReject] = useState(false); - const [img, setImg] = useState(""); const [jobId, setJobId] = useState(""); const [catatan, setCatatan] = useState(""); - const TableRows = data?.map((e, i) => ( + async function onSearch(s: string) { + setSearch(s); + const loadData = await adminJob_getListReject({ + page: 1, + search: s, + }); + setData(loadData.data as any); + setNPage(loadData.nPage); + setActivePage(1); + } + + async function onPageClick(p: any) { + setActivePage(p); + const loadData = await adminJob_getListReject({ + search: isSearch, + page: p, + }); + setData(loadData.data as any); + setNPage(loadData.nPage); + } + + const rowTable = data?.map((e, i) => ( + +
+ {e?.Author?.username} +
+ } + leftIcon={} onClick={() => { - setImg(e.imagesId); - open(); + router.push(RouterAdminJob.detail_poster + e?.imagesId); }} > Lihat @@ -129,7 +158,10 @@ function TableStatus({ listReject }: { listReject: MODEL_JOB[] }) { setCatatan(e.catatan); }} > - Reject + + Tambah + Catatan + @@ -137,42 +169,51 @@ function TableStatus({ listReject }: { listReject: MODEL_JOB[] }) { return ( <> - -
- Foto -
-
- { setReject(false); }} withCloseButton={false} - size={"lg"} + size={"sm"} centered > -