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>
This commit is contained in:
@@ -15,15 +15,30 @@ Tambah ke model `RingkasanKesehatanDesa` (additive, tidak ubah field lama):
|
||||
| `giziBaikPct` | Int | 0 | Persentase gizi baik (0-100) |
|
||||
| `targetStuntingPct` | Int | 0 | Persentase target stunting (0-100) |
|
||||
|
||||
## Step
|
||||
## Step A — Schema + API
|
||||
|
||||
- [ ] 1. Edit `prisma/schema.prisma` — tambah 4 field
|
||||
- [ ] 2. Run migration: `bunx prisma migrate dev --name add-statistik-pct-ringkasan-kesehatan`
|
||||
- [ ] 3. Update `kesehatan/ringkasan-kesehatan/findUnique.ts` — select field baru
|
||||
- [ ] 4. Update `kesehatan/ringkasan-kesehatan/updt.ts` — tambah validasi Elysia + update logic
|
||||
- [ ] 5. `bun run build` — pastikan 0 error
|
||||
- [ ] 6. Bump version `package.json`
|
||||
- [ ] 7. Commit + push branch baru
|
||||
- [x] 1. Edit `prisma/schema.prisma` — tambah 4 field
|
||||
- [x] 2. Buat migration manual `20260504000000_add_statistik_pct_ringkasan_kesehatan/migration.sql` (mode interaktif tidak tersedia di sandbox)
|
||||
- [x] 3. `findUnique.ts` tidak perlu diubah — `findFirst` tanpa `select` otomatis bawa field baru
|
||||
- [x] 4. `updt.ts` + `index.ts` — handler create/update + Elysia body validation (range 0-100)
|
||||
- [x] 5. `bun run build` — exit 0
|
||||
- [x] 6. Bump `0.1.48 → 0.1.49`
|
||||
- [x] 7. Commit `feat(kesehatan): tambah 4 field statistik pct...` + push branch `tasks/statistik-kesehatan-ringkasan/add-pct-fields/20260504` + merge ke `stg`
|
||||
|
||||
## Step B — State File Admin
|
||||
|
||||
- [x] 1. Bikin `_state/kesehatan/ringkasan-kesehatan/ringkasanKesehatan.ts` (Valtio + zod)
|
||||
- [x] 2. `findUnique.load()` — GET + sync ke form
|
||||
- [x] 3. `update.submit()` — zod validate (count ≥ 0, Pct 0-100) + PUT + refresh
|
||||
- [x] 4. `update.reset()`
|
||||
- [x] 5. `bun run build` — exit 0
|
||||
- [x] 6. Bump `0.1.49 → 0.1.50`
|
||||
- [x] 7. Commit + push ke `stg` (2 remote)
|
||||
|
||||
## Pending Manual
|
||||
|
||||
- [ ] User jalankan `bunx prisma migrate deploy` di terminal lokal — apply 4 kolom baru ke DB
|
||||
- [ ] Trigger GitHub Workflow (publish + re-pull) bila mau deploy ke STG
|
||||
|
||||
## Prinsip
|
||||
- Additive only — field lama (`ibuHamilAkh`, `balitaTerdaftar`, `alertStunting`) tidak disentuh
|
||||
|
||||
59
MIND/SUMMARY/statistik-kesehatan-ringkasan-summary.md
Normal file
59
MIND/SUMMARY/statistik-kesehatan-ringkasan-summary.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Summary: Statistik Persentase Kesehatan di RingkasanKesehatanDesa
|
||||
|
||||
## Konteks
|
||||
|
||||
Dashboard admin punya 4 progress bar (Imunisasi Lengkap, Pemeriksaan Rutin,
|
||||
Gizi Baik, Target Stunting) yang sebelumnya belum ada backend-nya. Schema
|
||||
`RingkasanKesehatanDesa` hanya menyimpan 3 field count (`ibuHamilAkh`,
|
||||
`balitaTerdaftar`, `alertStunting`).
|
||||
|
||||
## Yang Dikerjakan
|
||||
|
||||
### Step A — Schema + API (v0.1.49)
|
||||
1. **Schema** — tambah 4 field `Int @default(0)` di `RingkasanKesehatanDesa`:
|
||||
`imunisasiLengkapPct`, `pemeriksaanRutinPct`, `giziBaikPct`, `targetStuntingPct`.
|
||||
2. **Migration** — buat manual SQL di
|
||||
`prisma/migrations/20260504000000_add_statistik_pct_ringkasan_kesehatan/migration.sql`
|
||||
(sandbox non-interaktif, jadi `migrate dev` di-bypass dengan SQL langsung).
|
||||
3. **API** —
|
||||
- `kesehatan/ringkasan-kesehatan/updt.ts` — handler create + update terima 4 field baru.
|
||||
- `kesehatan/ringkasan-kesehatan/index.ts` — Elysia body validation `t.Number({ minimum: 0, maximum: 100 })`.
|
||||
- `findUnique.ts` tidak perlu diubah — `findFirst` tanpa `select` otomatis bawa field baru.
|
||||
4. Build clean, push ke 2 remote (bipprojectbali + nicoarya20), merge ke `stg`.
|
||||
|
||||
### Step B — State Admin (v0.1.50)
|
||||
- File baru `_state/kesehatan/ringkasan-kesehatan/ringkasanKesehatan.ts` (Valtio proxy):
|
||||
- `findUnique.load()` — GET `/api/kesehatan/ringkasankesehatan/find`, isi `data` + sync ke `update.form`.
|
||||
- `update.submit()` — zod validate (count ≥ 0, Pct 0-100) → PUT `/api/kesehatan/ringkasankesehatan/update` → refresh.
|
||||
- `update.reset()` — reset form ke default.
|
||||
|
||||
## Decision Log
|
||||
|
||||
- **Gabung ke `RingkasanKesehatanDesa`** (bukan model baru `StatistikKesehatan`)
|
||||
alasan: domain sama (ringkasan kesehatan desa), pattern existing single-row config
|
||||
cocok, single fetch untuk dashboard, migration ringan additive.
|
||||
- **Tipe `Int` (0–100)** — UI render integer %, tidak butuh desimal.
|
||||
- **Suffix `Pct`** — eksplisit semantik persentase (count vs persentase di model yang sama).
|
||||
- **Field lama tidak disentuh** — additive only, sesuai AI-CONTRACT §10.
|
||||
|
||||
## Pending Manual
|
||||
|
||||
- Jalankan `bunx prisma migrate deploy` di terminal lokal → apply kolom baru ke DB.
|
||||
- Trigger GitHub Workflow (publish + re-pull) bila mau deploy STG.
|
||||
|
||||
## Affected Files
|
||||
|
||||
```
|
||||
prisma/schema.prisma
|
||||
prisma/migrations/20260504000000_add_statistik_pct_ringkasan_kesehatan/migration.sql [NEW]
|
||||
src/app/api/[[...slugs]]/_lib/kesehatan/ringkasan-kesehatan/updt.ts
|
||||
src/app/api/[[...slugs]]/_lib/kesehatan/ringkasan-kesehatan/index.ts
|
||||
src/app/admin/(dashboard)/_state/kesehatan/ringkasan-kesehatan/ringkasanKesehatan.ts [NEW]
|
||||
package.json (0.1.48 → 0.1.50)
|
||||
MIND/PLAN/task-statistik-kesehatan-ringkasan.md [NEW]
|
||||
```
|
||||
|
||||
## Commits
|
||||
|
||||
- `ba2b90be` feat(kesehatan): tambah 4 field statistik pct ke RingkasanKesehatanDesa - bump ke 0.1.49
|
||||
- `68a2a639` feat(kesehatan): tambah state file ringkasanKesehatan + bump ke 0.1.50
|
||||
Reference in New Issue
Block a user