feat(desa): Kalender Event Budaya — fitur admin/public, seeder, pagination, fix duplicate options
- Tambah fitur Kalender Event Budaya di admin CMS (list, detail, edit, hapus) - Tambah state Valtio (create, findMany, findUnique, edit, delete, findUpcoming) - Tambah endpoint API /find-upcoming untuk event mendatang - Tambah halaman public /darmasaba/desa/event-budaya dengan pagination 5 data/halaman - Switch public page dari findUpcoming ke findMany agar pagination berjalan - Tambah menu "Kalender Event Budaya" di navbar (id: 2.9) - Perluas seeder event budaya: 8 → 34 events mencakup 2025-2026 - Fix: deduplikasi kategoriOptions di kegiatan-desa public page (Mantine Select error) - Hapus STRUKTUR.md yang sudah tidak relevan Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
async function eventBudayaFindUpcoming() {
|
||||
const today = new Date();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
|
||||
try {
|
||||
const data = await prisma.eventBudaya.findMany({
|
||||
where: {
|
||||
isActive: true,
|
||||
tanggal: { gte: today },
|
||||
},
|
||||
orderBy: { tanggal: "asc" },
|
||||
take: 20,
|
||||
});
|
||||
|
||||
return { success: true, data };
|
||||
} catch (e) {
|
||||
console.error("Error di eventBudayaFindUpcoming:", e);
|
||||
return { success: false, message: "Gagal mengambil event mendatang" };
|
||||
}
|
||||
}
|
||||
|
||||
export default eventBudayaFindUpcoming;
|
||||
@@ -1,5 +1,6 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import eventBudayaFindMany from "./find-many";
|
||||
import eventBudayaFindUpcoming from "./find-upcoming";
|
||||
import eventBudayaFindUnique from "./findUnique";
|
||||
import eventBudayaCreate from "./create";
|
||||
import eventBudayaDelete from "./del";
|
||||
@@ -7,6 +8,7 @@ import eventBudayaUpdate from "./updt";
|
||||
|
||||
const EventBudaya = new Elysia({ prefix: "/eventbudaya", tags: ["Desa/Event Budaya"] })
|
||||
.get("/find-many", eventBudayaFindMany)
|
||||
.get("/find-upcoming", eventBudayaFindUpcoming)
|
||||
.get("/:id", eventBudayaFindUnique)
|
||||
.post("/create", eventBudayaCreate, {
|
||||
body: t.Object({
|
||||
|
||||
Reference in New Issue
Block a user