fc6846f7a1
feat(kesehatan): admin page ringkasan-kesehatan + sidebar entry - bump ke 0.1.51
...
- New page src/app/admin/(dashboard)/kesehatan/ringkasan-kesehatan/page.tsx
konsumsi ringkasanKesehatanState (load + submit) dengan 7 NumberInput
(3 count + 4 pct).
- Tambah Kesehatan_8 "Ringkasan Kesehatan" di 3 instance sidebar
(list_PageAdmin.tsx).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-04 15:20:39 +08:00
9ef5773cc2
docs(mind): update plan + tambah summary statistik kesehatan ringkasan
...
Tandai Step A & B selesai, catat decision log dan pending manual
(bunx prisma migrate deploy + trigger GH workflow).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-04 14:35:42 +08:00
68a2a6390b
feat(kesehatan): tambah state file ringkasanKesehatan + bump ke 0.1.50
...
State Valtio untuk RingkasanKesehatanDesa: findUnique (load + sync form)
dan update (zod validation, PUT, refresh). Cover 3 KPI + 4 field Pct baru.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-04 14:30:55 +08:00
ba2b90be75
feat(kesehatan): tambah 4 field statistik pct ke RingkasanKesehatanDesa - bump ke 0.1.49
...
Tambah imunisasiLengkapPct, pemeriksaanRutinPct, giziBaikPct, targetStuntingPct
ke schema + migration + Elysia body validation (range 0-100) + updt handler.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-04 14:19:27 +08:00
3cc30bf0ff
docs(mind): update AI collaboration contract plan and summary
2026-05-04 14:13:54 +08:00
0a5d17f45e
docs: add AI collaboration contract and fix KegiatanCard image handling - bump to 0.1.48
2026-04-30 15:30:24 +08:00
83a2dece57
refactor(kegiatan-desa): redesign public list page to card grid + kategori filter
...
- Remove hero/featured section and tab navigation
- Redesign to pecalang-style: 3-col card grid (image, title, desc, Detail button)
- Replace tabs with Select dropdown filter by kategori
- Search + kategori filter use query params, stay on /semua route
- Image hidden when empty (no placeholder)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 15:09:33 +08:00
e0a5177257
feat(kegiatan-desa): add full CRUD frontend + public detail page - bump to 0.1.47
...
- API: add GET /:id endpoint (findUnique) for KegiatanDesa
- Admin CMS: add pages for list-kegiatan-desa and kategori-kegiatan-desa (list, create, detail, edit)
- Public: add detail page at /desa/kegiatan-desa/[kategori]/[id]
- Refactor: move KegiatanCard to _com to fix Next.js page export constraint
- Nav: register kegiatan-desa in navbar and admin page list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 14:27:28 +08:00
23c955597e
feat(api): add KategoriKegiatan CRUD API and register module - bump to 0.1.46
...
- Add KategoriKegiatan CRUD (create, findMany, findUnique, update, del)
- Register KategoriKegiatan in Desa API router
- Support soft delete for categories
2026-04-30 11:33:29 +08:00
28a22e8d77
chore(merge): merge sosial seeder branch into stg
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 11:02:14 +08:00
67efe6ce35
feat(seeder): add seeders for Sosial dashboard APIs
...
- Add seed_ringkasan_kesehatan.ts (ibuHamil=87, balita=342, stunting=12)
- Add seed_beasiswa_config.ts (tahun 2025/2026, dana Rp 1.2M)
- Add seed_kegiatan_desa.ts (KategoriKegiatan + KegiatanDesa incl. Budaya)
- Add kategori-kegiatan.json + kegiatan-desa.json data files
- Update posyandu.json: 1 → 8 posyandu (Mawar, Melati, Dahlia, Anggrek, dll)
- Update program-kesehatan.json: add persentase field + 4 stat entries
- Update seed_program_kesehatan.ts: include persentase in upsert
- Update seed.ts: import + call new seeders
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 11:00:44 +08:00
b39f9b39da
feat(sosial): add schema fields + API endpoints for Sosial dashboard - bump to 0.1.45
...
- Add persentase field to ProgramKesehatan (for health stats bar chart)
- Add BeasiswaConfig model (dana tersalurkan + tahun ajaran)
- Add RingkasanKesehatanDesa model (ibu hamil, balita, alert stunting)
- Add KegiatanDesa CRUD API (GET /api/desa/kegiatandesa/find-many?kategori=Budaya)
- Add BeasiswaConfig API (GET/PUT /api/pendidikan/beasiswa/beasiswaconfig/...)
- Add RingkasanKesehatan API (GET/PUT /api/kesehatan/ringkasankesehatan/...)
- Migration: 20260430000000_add_sosial_fields
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 00:16:25 +08:00
6041cdf552
chore: bump version to 0.1.44 for stg deploy
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 14:35:03 +08:00
5cd6e3aa99
fix(api): update swagger path and add scalarConfig - bump to 0.1.43
2026-04-29 14:15:51 +08:00
f31ab0eda5
chore: bump version to 0.1.42 for stg deploy
2026-04-29 11:54:36 +08:00
0517d50c8e
feat(umkm): dashboard frontend - mode toggle, kategoriAktif, jumlahKategoriTerbanyak, growth badge, trendPersen, filter dropdowns - bump to 0.1.41
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 07:41:42 +08:00
fa7a52a0f3
fix(umkm): dashboard backend - jumlahKategoriTerbanyak, kategoriAktif, growth, trendPersen, mode=week - bump to 0.1.40
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 02:34:36 +08:00
ef237aea2f
chore: bump version to 0.1.40 for stg deploy
2026-04-29 02:33:21 +08:00
f6107e971d
fix(umkm): use KategoriProdukUmkm in KPI and fix product detail description - bump to 0.1.39
2026-04-28 16:22:55 +08:00
550961d524
fix(umkm): make PasarDesa.kategoriProdukId nullable, null-out orphaned refs - bump to 0.1.38
2026-04-28 15:50:20 +08:00
34d49fa073
fix(umkm): seed KategoriProdukUmkm from PasarDesa FK data - bump to 0.1.37
2026-04-28 15:21:39 +08:00
1631e273a4
fix(umkm): migrate PasarDesa.kategoriProdukId FK to KategoriProdukUmkm - bump to 0.1.36
2026-04-28 14:26:23 +08:00
faf78064c7
chore: bump version to 0.1.35 for stg deploy
2026-04-28 11:08:13 +08:00
9dd5d1545f
feat(umkm): migrate kategori produk to KategoriProdukUmkm model - bump to 0.1.34
2026-04-28 00:51:00 +08:00
a4c7a97593
feat(umkm): migrate KategoriProduk to KategoriProdukUmkm for UMKM isolation
...
- update prisma schema to use KategoriProdukUmkm for Umkm model
- add @@map to KategoriProdukUmkm for lowercase table naming
- update API endpoints and KPI dashboard to use new model
- bump version to 0.1.33
2026-04-28 00:47:22 +08:00
5ab014281a
feat(umkm): implement full CRUD for product categories
...
- added CRUD endpoints for KategoriProduk in Elysia API
- updated umkmState with category management logic
- added 'Kategori Produk' tab in admin dashboard
- created list, create, and edit pages for category management
- bumped version to 0.1.32
2026-04-27 17:37:16 +08:00
865074a310
fix(umkm): fix toast.error return value bug in kategoriProduk state and deploy v0.1.31
2026-04-27 17:33:27 +08:00
b640bb3919
fix(migration): also delete KategoriToPasar rows before PasarDesa FK cleanup - bump to 0.1.30
2026-04-27 15:20:01 +08:00
f48b982b3c
fix(migration): delete invalid PasarDesa rows before FK constraint - bump to 0.1.29
2026-04-27 14:54:53 +08:00
cfe06137d8
chore: bump version to 0.1.28 for stg deploy
2026-04-27 14:08:01 +08:00
f0504c9dc0
fix(migration): make migration idempotent and auto-resolve failed state on deploy
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 12:02:21 +08:00
1916c616de
fix(env): add MinIO placeholder vars to .env.example for Docker build
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 11:35:20 +08:00
e3345c71f5
fix(docker): copy bun.lock text lockfile and update lockfile
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 11:22:41 +08:00
68da360cea
chore: update bun lockfile for stg deploy
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 11:17:34 +08:00
b9b2b65294
chore: bump version to 0.1.27 for stg deploy
2026-04-27 11:11:03 +08:00
71e23dea1a
feat(api): add /version endpoint and increment version to 0.1.25
2026-04-27 10:19:56 +08:00
cd7425292c
feat(ekonomi): refactor umkm module with sales delete, stock validation, and ordering system
2026-04-24 16:57:43 +08:00
187e3a2115
feat(admin): refactor UMKM edit pages to match berita pattern with interfaces
2026-04-24 14:34:02 +08:00
7f5588f69e
feat(admin): refactor UMKM edit pages to match berita pattern
2026-04-24 14:20:40 +08:00
30fbed73c9
fix(admin): resolve 404 on kategoriProduk API and correct Valtio state endpoint mismatches
...
- Created missing API endpoint
- Corrected UMKM and Produk update/delete routes in Valtio state to match Elysia API:
- UMKM Update:
- UMKM Delete:
- Produk Update:
- Produk Delete:
2026-04-24 12:19:24 +08:00
67c51302fe
docs: add plan, task, and summary for admin-umkm-edit
2026-04-24 11:49:15 +08:00
b1916ca3a3
feat(admin): implement edit and delete functionality for UMKM and Produk modules
...
- Added update and del methods to UMKM Valtio state
- Wired up edit and delete buttons in UMKM and Produk list pages
- Integrated ModalKonfirmasiHapus for deletion safety
- Created UMKM and Produk edit pages with data loading and image previews
- Cleaned up unused imports and fixed useEffect dependencies
- Bumped version to 0.1.21
2026-04-24 11:46:08 +08:00
b9d43eb723
fix(storage): migrate domain-specific delete and update handlers to MinIO
...
- Replaces local filesystem operations (fs.unlink, path.join) with MinIO removeObject in all domain lib handlers
- Updated handlers for: Berita, GalleryFoto, Layanan, Musik, Penghargaan, Potensi, Profile, Inovasi, Keamanan, Kesehatan, LandingPage, and PPID
- bump: version 0.1.19 -> 0.1.20
2026-04-23 17:05:44 +08:00
37940fc7e2
fix(img): fix WebP Content-Type bug and seed 232 missing FileStorage records
...
- img.ts: replace hardcoded 'image/jpeg' Content-Type with dynamic MIME_MAP
lookup per file extension — WebP files now served with correct 'image/webp'
header so browsers can decode them
- img.ts: skip sharp resize when no size param (serve original buffer directly)
- Adds migration 20260423072135 to add stok and umkmId columns to PasarDesa
- FileStorage DB now has all 232 MinIO images seeded (was 80, missing 152)
- All domain records (Berita 18/18, GalleryFoto 3/3, PasarDesa 4/4, etc.)
now have imageId properly linked after full re-seed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-23 15:41:20 +08:00
2958950585
fix(storage): migrate fileStorage handlers and seeder from local disk/Seafile to MinIO
...
Root cause: images not showing because:
1. seed_assets.ts was listing from Seafile (unreliable, 502 errors)
2. fileStorage create/findUniq/del handlers used local disk (not available in containers)
3. link format in file-storage.json had inconsistent path prefix
Changes:
- seed_assets.ts: list objects from MinIO bucket instead of Seafile API; seed
link as /api/img/{name}, path as "image" (matches MinIO prefix)
- fileStorage/create.ts: upload image/audio/document to MinIO via putObject;
remove WIBU_UPLOAD_DIR dependency and all fs.writeFile calls
- fileStorage/findUniq.ts: stream file from MinIO via getObject; remove
WIBU_UPLOAD_DIR and fs.readFile
- fileStorage/del.ts: delete from MinIO via removeObject; remove fs.unlink
- file-storage.json: fix path field to "image" (was full path); all 80 entries
already have correct link=/api/img/{name} format
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-23 14:28:08 +08:00
d145611221
bump: version 0.1.18 -> 0.1.19
2026-04-23 13:53:17 +08:00
437e9aa13c
fix(build): resolve type errors in img.ts and cleanup route.ts
2026-04-23 13:52:57 +08:00
55d0735fcf
merge(stg): merge main into stg and resolve storage conflicts
2026-04-23 13:48:26 +08:00
00a81d7dba
Migrate Minio
2026-04-23 12:13:25 +08:00
b9b00f0a20
docs(qc): add quality control summaries for various modules
...
Added comprehensive QC reports and fix summaries for:
- Desa (Berita, Potensi, Profil, Layanan, Penghargaan, Pengumuman)
- Kesehatan (Posyandu)
- Landing Page (APBDes, SDGS, Anti-Korupsi, Profil, Prestasi)
- PPID (Daftar Informasi, Dasar Hukum, IKM, Permohonan, Struktur, Visi Misi)
2026-04-23 12:11:55 +08:00