# Tasks

Semua task berikut adalah rencana implementasi setelah proposal direview dan pengguna meminta apply. Tidak ada perubahan Prisma/ERD/migration; bila kebutuhan tersebut muncul, konfirmasi pengguna sebelum melanjutkan perubahan database.

## 1. Kontrak dan agregasi Maintenance

- [x] 1.1 Tambahkan DTO overview, batas bulan fasilitas, satu asOf, dan definisi cohort sesuai design; verifikasi unit test pergantian bulan lokal, deadline persis asOf, dan pengecualian WO unreleased/cancelled/calibration.
- [x] 1.2 Implementasikan PM compliance, PM overdue lintas bulan, corrective aktif, serta kedua grafik Maintenance; verifikasi kasus selesai tepat waktu/terlambat, completedAt/dueAt null, deadline masa depan, penyebut nol, dan perbedaan createdAt/dueAt cohort dengan fixture deterministik.
- [x] 1.3 Implementasikan pemilihan maksimal lima WO tanpa duplikasi dengan urutan overdue, urgent aktif, lalu terbaru dan target kedua sumber; verifikasi urutan tie-break, URGENT, target karantina, target archived/missing, serta tidak adanya field teknisi.

## 2. Agregasi Inventory dan konsistensi baca

- [x] 2.1 Implementasikan critical SKU KPI dan tiga dataset grafik Inventory dari balance Part aktif; verifikasi physical/quarantine, pending checkout, minimum nol, equality minimum, missing balance, archived part, satuan campuran, dan overlap karantina.
- [x] 2.2 Gabungkan seluruh query dalam snapshot baca konsisten dengan proyeksi minimal dan tanpa detail WO per record; verifikasi integrasi MySQL terisolasi bahwa KPI/grafik cocok saat posting bersamaan, populasi melebihi ukuran halaman tetap dihitung, dan GET tidak menulis WO/notifikasi/stok.

## 3. Endpoint dan dokumentasi API

- [x] 3.1 Tambahkan controller, validator, route terautentikasi dan registrasi `GET /api/v1/dashboard/overview`; verifikasi contract test seluruh role aktif, sesi hilang/kedaluwarsa/nonaktif, penolakan filter periode unsupported, envelope/requestId, serta error database tanpa fallback nol.
- [x] 3.2 Tambahkan `dashboard.openapi.ts` dengan response DTO, nullable percentage, periode/timezone/asOf, aturan cohort, dan error auth/validasi; verifikasi pengujian kontrak Swagger dan contoh respons sesuai hasil service.

## 4. Service frontend dan halaman Home

- [x] 4.1 Tambahkan `dashboard.service.ts` dan hook query mengikuti pola proyek dengan auth, cache sesi, abort, focus refetch, serta polling 60 detik saat halaman aktif; verifikasi network request, berhenti saat tab tidak aktif, pergantian sesi, dan pembatalan request.
- [x] 4.2 Hubungkan empat KPI dan lima grafik ke response, hilangkan angka dummy, serta terapkan label periode/cohort/satuan sesuai matriks review design; verifikasi tampilan dataset normal, campuran satuan, overlap karantina, nol, dan compliance null tanpa persentase/target fiktif.
- [x] 4.3 Hubungkan tabel WO, ubah Equipment/Sub Item menjadi Target/Sumber dengan konteks target, hapus Technician/avatar dan calibration, tampilkan URGENT/status aktual/overdue, serta aktifkan View all; verifikasi pilot plant dan sparepart tampil benar dan tombol menuju Maintenance.
- [x] 4.4 Tambahkan loading, empty, error/retry, dan peringatan data lama pada refresh gagal, lalu bersihkan import/data dummy Home yang tidak terpakai; verifikasi alur browser respons lambat, gagal pertama kali, retry berhasil, dan background refresh gagal tanpa menghapus data terakhir.

## 5. Verifikasi integrasi

- [x] 5.1 Jalankan pengujian dashboard, kontrak respons/Swagger, serta regresi Maintenance/Inventory yang terdampak; verifikasi hasil lulus dan catat prasyarat database pengujian serta keterbatasan yang benar-benar ditemui.
- [x] 5.2 Jalankan typecheck/build API dan frontend serta smoke test Home terhadap API; verifikasi angka contoh tepat waktu/terlambat, backlog bulan sebelumnya, kedua target, dan tidak ada calibration/teknisi/data dummy, kemudian catat hasil dan konfirmasi diff tidak mengubah schema atau fitur di luar scope.
