# Proposal

## Why

Halaman Reports masih memakai data simulasi dan menampilkan biaya, beban teknisi, serta reliability yang belum didukung pencatatan operasional. Pengguna membutuhkan laporan teknis per periode yang dapat ditelusuri dan diekspor, melengkapi ringkasan kondisi terkini pada Dashboard.

## What Changes

- Tambahkan API Reports read-only untuk analisis WO, corrective, pergerakan inventory, dan kepatuhan PM dengan DTO bersama, autentikasi existing, filter tanggal, pagination, dan OpenAPI.
- Hubungkan halaman Reports melalui service frontend dan React Query; pertahankan struktur empat tab dan gaya halaman.
- Ubah Asset Reliability menjadi Analisis Corrective: gunakan frekuensi WO per target dan durasi pengerjaan; pisahkan Pilot Plant dan sparepart karantina.
- Ganti tabel teknisi dengan rincian WO; ganti pemakaian per mesin dengan rekap per SKU/kelompok. Hapus biaya, KPI stockout, MTBF, downtime, kategori kerusakan dummy, dan istilah Audit dari tab PM.
- Tambahkan date range dengan preset, filter sumber/jenis WO atau kelompok/SKU sesuai tab, pagination, dan navigasi ke fitur sumber.
- Sesuaikan Excel seluruh tab dan PDF melalui browser print dengan data nyata, filter, metadata, dan kondisi kosong; ekspor seluruh hasil, bukan halaman aktif saja.
- Definisikan cohort tanggal, backlog akhir periode, PM tepat waktu, satuan stok, dan reversal lintas periode. Jelaskan bahwa laporan dihitung dari data operasional terkini, bukan arsip historis yang dibekukan.

## Capabilities

### New Capabilities
- `operational-reporting`: Pembacaan, penyajian, dan ekspor laporan teknis periodik Maintenance dan Inventory.

### Modified Capabilities
Tidak ada durable spec existing; perilaku Dashboard dan workflow transaksi tetap dipertahankan.

## Impact

- Backend: routes/controllers/validators Reports baru, service analytics baru, registrasi router, dokumentasi OpenAPI, dan pengujian.
- Frontend: reports page/components/data/export, services/reports.service.ts, query hooks; packages/shared untuk DTO.
- src/services/reports.service.ts existing milik DamageReport tidak ditimpa; analytics memakai report-analytics.service.ts.
- Tidak memerlukan migration, perubahan model/ERD, seeder baru, cronjob, dependency UI baru, atau perubahan alur checkout/WO. Perubahan database tambahan harus dikonfirmasi terpisah.
- Seluruh perubahan UI di atas diajukan untuk review melalui proposal ini; belum diimplementasikan. Keuangan, technician assignment, calibration, failure logging, operating logs, stockout capture, dan snapshot historis permanen di luar cakupan.
