# Event Join

## feat
- Join event
- kontribusi event
- histoty in progress
### No Issue
This commit is contained in:
2024-01-29 22:03:27 +08:00
parent bec87028fd
commit ca9214d9e0
109 changed files with 2932 additions and 515 deletions

View File

@@ -0,0 +1,13 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_countTotalPesertaById(eventId: string) {
const data = await prisma.event_Peserta.count({
where: {
eventId: eventId,
},
});
return data;
}

View File

@@ -0,0 +1,25 @@
"use server";
import prisma from "@/app/lib/prisma";
import { MODEL_EVENT } from "../../model/interface";
import { revalidatePath } from "next/cache";
export async function Event_funCreate(req: MODEL_EVENT) {
const res = await prisma.event.create({
data: {
title: req.title,
lokasi: req.lokasi,
deskripsi: req.deskripsi,
eventMaster_TipeAcaraId: req.eventMaster_TipeAcaraId,
tanggal: req.tanggal,
authorId: req.authorId,
},
});
if (!res) return { status: 400, message: "Gagal Disimpan" };
revalidatePath("/dev/event/main/status_page");
return {
status: 201,
message: "Berhasil Disimpan",
};
}

View File

@@ -0,0 +1,21 @@
"use server";
import prisma from "@/app/lib/prisma";
import { MODEL_EVENT_PESERTA } from "../../model/interface";
import { revalidatePath } from "next/cache";
export async function Event_funJoinEvent(data: MODEL_EVENT_PESERTA) {
const crt = await prisma.event_Peserta.create({
data: {
eventId: data.eventId,
userId: data.userId,
},
});
if (!crt) return { status: 400, message: "Gagal Join" };
revalidatePath("/dev/event/detail/main");
return {
status: 200,
message: "Berhasil Join",
};
}

View File

@@ -0,0 +1,19 @@
"use server";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
export async function Event_funDeleteById(eventId: string) {
const del = await prisma.event.delete({
where: {
id: eventId,
},
});
if (!del) return { status: 400, message: "Gagal hapus data" };
revalidatePath("/dev/event/main/status_page");
return {
status: 200,
message: "Hapus data berhasil",
};
}

View File

@@ -0,0 +1,27 @@
"use server";
import prisma from "@/app/lib/prisma";
import { MODEL_EVENT } from "../../model/interface";
import { revalidatePath } from "next/cache";
export async function Event_funEditById(data: MODEL_EVENT) {
const updt = await prisma.event.update({
where: {
id: data.id,
},
data: {
title: data.title,
lokasi: data.lokasi,
deskripsi: data.deskripsi,
tanggal: data.tanggal,
eventMaster_TipeAcaraId: data.EventMaster_TipeAcara.id as any,
},
});
if (!updt) return { status: 400, message: "Update Gagal" };
revalidatePath("/dev/event/detail/event");
return {
status: 200,
message: "Berhasil Update",
};
}

View File

@@ -0,0 +1,29 @@
"use server";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
/**
*
* @param statusid | Review: 2, Draft: 3, Reject: 4
* @param eventId
* @type string
* @returns Update status id dari setiap event
*/
export async function Event_funEditStatusById(statusid: string, eventId: string) {
const updt = await prisma.event.update({
where: {
id: eventId,
},
data: {
eventMaster_StatusId: statusid,
},
});
if (!updt) return { status: 400, message: "Gagal Update Status" };
revalidatePath("/dev/event/main/status_page");
return {
status: 200,
message: "Berhasil Update Status",
};
}

View File

@@ -0,0 +1,18 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_CekUserJoinById(eventId: string, userId: string) {
const cek = await prisma.event_Peserta.count({
where: {
eventId: eventId,
userId: userId,
},
});
if (cek > 0) {
return true;
} else {
return false;
}
}

View File

@@ -0,0 +1,66 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_getByStatusId(statusId: string, authorId: string) {
if (statusId === "1") {
const data = await prisma.event.findMany({
where: {
eventMaster_StatusId: "1",
authorId: authorId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
}
if (statusId === "2") {
const data = await prisma.event.findMany({
where: {
eventMaster_StatusId: "2",
authorId: authorId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
}
if (statusId === "3") {
const data = await prisma.event.findMany({
where: {
eventMaster_StatusId: "3",
authorId: authorId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
}
if (statusId === "4") {
const data = await prisma.event.findMany({
where: {
eventMaster_StatusId: "4",
authorId: authorId,
},
select: {
id: true,
title: true,
deskripsi: true,
tanggal: true,
},
});
return data;
}
}

View File

@@ -0,0 +1,35 @@
"use server";
import prisma from "@/app/lib/prisma";
import _ from "lodash";
export async function Event_getListAllPublish() {
const data = await prisma.event.findMany({
orderBy: {
tanggal: "desc",
},
where: {
eventMaster_StatusId: "1",
tanggal: {
gte: new Date(),
},
},
select: {
id: true,
title: true,
lokasi: true,
tanggal: true,
deskripsi: true,
active: true,
catatan: true,
authorId: true,
Author: {
select: {
Profile: true,
},
},
},
});
return data;
}

View File

@@ -0,0 +1,45 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_getListKontibusiByUserId(userId: string) {
const data = await prisma.event_Peserta.findMany({
where: {
userId: userId,
},
select: {
id: true,
Event: {
select: {
id: true,
title: true,
tanggal: true,
deskripsi: true,
Author: {
select: {
Profile: true,
},
},
Event_Peserta: {
take: 5,
orderBy: {
createdAt: "desc",
},
select: {
id: true,
userId: true,
User: {
select: {
Profile: true
}
},
},
},
},
},
},
});
// console.log(data);
return data;
}

View File

@@ -0,0 +1,27 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_getListPesertaById(eventId: string) {
const data = await prisma.event_Peserta.findMany({
where: {
eventId: eventId,
},
select: {
id: true,
active: true,
createdAt: true,
updatedAt: true,
userId: true,
User: {
select: {
Profile: true,
},
},
// Event: true,
eventId: true,
},
});
return data;
}

View File

@@ -1,14 +0,0 @@
"use server"
import prisma from "@/app/lib/prisma"
export async function Event_getListUser() {
const data = await prisma.user.findMany({
select: {
id: true,
username: true,
Profile: true
}
})
return data
}

View File

@@ -0,0 +1,35 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Event_getOneById(eventId: string) {
const data = await prisma.event.findFirst({
where: {
id: eventId,
},
select: {
id: true,
title: true,
lokasi: true,
tanggal: true,
deskripsi: true,
active: true,
createdAt: true,
updatedAt: true,
catatan: true,
authorId: true,
Author: {
select: {
Profile: true,
},
},
eventMaster_StatusId: true,
EventMaster_Status: true,
eventMaster_TipeAcaraId: true,
EventMaster_TipeAcara: true,
// Event_Peserta: true,
},
});
return data;
}

View File

@@ -0,0 +1,8 @@
"use server"
import prisma from "@/app/lib/prisma"
export async function Event_getMasterTipeAcara(){
const data = await prisma.eventMaster_TipeAcara.findMany()
return data
}