Files
desa-darmasaba/src/app/api/[[...slugs]]/_lib/desa/event-budaya/index.ts
nico e9e7c17ee3 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>
2026-05-21 16:28:13 +08:00

32 lines
979 B
TypeScript

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";
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({
nama: t.String(),
tanggal: t.String(),
lokasi: t.String(),
deskripsi: t.Optional(t.String()),
}),
})
.put("/:id", eventBudayaUpdate, {
body: t.Object({
nama: t.String(),
tanggal: t.String(),
lokasi: t.String(),
deskripsi: t.Optional(t.String()),
}),
})
.delete("/del/:id", eventBudayaDelete);
export default EventBudaya;