# Proposal

Implementation status (2026-10-14): P1–P6, F1–F7, D1 and D2 were explicitly approved and implemented. Earlier pending-review wording below describes the proposal checkpoint and is superseded by the approval records in design.md. See tasks.md and verification.md for completion and evidence. Application migration deployment and scheduler activation remain separately instructed.

## Why

Maintenance masih memakai data demo, sedangkan penerimaan laporan Pilot Plant sudah menghasilkan Work Order persisten dan Inventory sudah menyimpan kasus karantina. Diperlukan alur terpadu untuk meninjau karantina, mengerjakan dan menyelesaikan pekerjaan, mencatat penggunaan sparepart, serta menjalankan jadwal PM tanpa menduplikasi pengurangan stok.

## What Changes

- Tambahkan halaman Inventory → Karantina: antrean kasus, pencarian/filter, detail jumlah dan riwayat, pembuatan WO manual, pelepasan dan pemusnahan beralasan.
- Kembangkan API Work Order yang sudah ada: detail lengkap, pencarian, ringkasan status, pembuatan, catatan, mulai/selesai/batal, dan riwayat perubahan. Sesuai keputusan pengguna, tidak ada penugasan teknisi; semua teknisi aktif dapat mengerjakan WO sesuai lifecycle dan aktor tetap diaudit.
- Tambahkan API penggunaan/pengembalian sparepart khusus WO dengan ledger Inventory, transaksi atomik, dan perlindungan pengiriman ulang. Checkout tetap independen dan tidak membuat WO.
- Tambahkan rencana maintenance, kalender kejadian, serta proses pembentukan WO per jadwal. Sertakan penyelesaian kalibrasi terstruktur untuk target Pilot Plant.
- Tambahkan service frontend Maintenance dan Karantina serta komponen baru yang diperlukan.
- **Disetujui untuk implementasi berikutnya:** hapus input/penampilan penugasan teknisi. **Menunggu persetujuan perubahan frontend lainnya:** mengganti data demo Maintenance dengan API; mengganti input target bebas dengan pemilihan ID; mengambil pelapor dari akun; memperbaiki kontrol status; menghubungkan pemakaian sparepart dan kalender; menambah route/menu. Rincian alasan dan batas perubahan ada di design.md. Tidak ada izin implisit untuk merombak tampilan atau menghapus fitur.
- Perubahan schema/migration apa pun membutuhkan persetujuan terpisah. Model yang sudah ada menjadi dasar; pilihan concurrency dan retry diselesaikan sebelum penulisan schema.

## Capabilities

### New Capabilities

- `maintenance-work-orders`: lifecycle pekerjaan, otorisasi, detail/antrean dan integrasi laporan Pilot Plant.
- `quarantine-review`: peninjauan kasus Inventory, pembuatan WO manual dan keputusan penanganan.
- `maintenance-part-usage`: pemakaian/pengembalian sparepart WO dengan satu sumber saldo dan riwayat.
- `maintenance-scheduling`: rencana, proyeksi kalender, pembentukan WO berulang dan hasil kalibrasi.

### Modified Capabilities

Tidak ada spec utama pada openspec/specs saat discovery. Proposal ini memperluas perilaku yang direncanakan dalam add-pilot-plant-api dan add-inventory-checkout-api tanpa mengedit artifact keduanya. Kontrak core API dan keputusan checkout publik tetap berlaku.

## Impact

Backend: routes/controllers/validators/services Work Order, reports, quarantine, inventory posting; shared DTO dan OpenAPI. Frontend: halaman baru Karantina, service baru, serta integrasi halaman Maintenance melalui checkpoint persetujuan. Database: WorkOrder, WorkOrderStatusHistory, WorkOrderComment, MaintenancePlan, CalibrationRecord, DamageReport, QuarantineCase, StockMovement dan AuditLog; potensi perubahan persistence hanya setelah review eksplisit.

Tidak mencakup keuangan, lokasi/rak, pelaporan kerusakan publik melalui checkout, atau pengaitan transaksi checkout ke WO. Proposal belum merupakan persetujuan implementasi maupun persetujuan perubahan frontend/database. Kebijakan MVP yang belum diputuskan ditandai sebagai usulan di design.md dan tasks.md.
