# CRUD Tabel Referensi & Lookup (Milestone 7)

Tahap ini memaparkan sasaran untuk menciptakan kapabilitas CRUD (Create, Read, Update, Delete) di semua Tabel Referensi spesifik menggunakan Antarmuka Native PHP. Fitur ini esensial bagi Admin untuk mengatur data konstanta secara dinamis (seperti tipe kandang, jenis hasil, dsb) tanpa bantuan teknisi database.

## Proposed Changes

### [Backend] Models (Reference Data)
Kami akan membentuk satu file `Model` PHP khusus per modul tabel referensi, alih-alih meletakkannya di dalam enum.

#### [NEW] `app/models/RefRole.php`
- Menangani kueri tabel `ref_roles`.

#### [NEW] `app/models/RefTransactionType.php`
- Menangani tabel tipe transaksi `ref_transaction_types`.

#### [NEW] Model Referensi Lainnya
- `RefCoopType`, `RefBatchStatus`, `RefItemCategory`, `RefEggGrade`, `RefHealthOutcome`, `RefSalesType` agar masing-masing memiliki CRUD logic-nya melalui PDO Statements murni.

### [Backend] CRUD Controllers & Views
Akan dibangun sekumpulan *Controller* dan halaman HTML / PHP `views` untuk mengatur referensi tersebut.

#### [NEW] Sistem Routing Master Data `app/controllers/admin/ReferenceController.php`
Menangani berbagai entitas sekaligus, atau dipecah per-entitas:
- `Role Controller`: Modifikasi nama-nama posisi pengguna.
- `CoopType Controller`: Mengatur jenis kandang yang didukung sistem (seperti Open/Closed House).
- `BatchStatus Controller`: Mengelola alur lifecycle DOC.
- `ItemCategory Controller`: Manajemen pengelompokan jenis stok barang gudang.
- `TransactionType Controller`: Mengatur mutasi persediaan logistik.

## Open Questions

- Apakah tipe data referensi utama (contoh: Role "Super Administrator" atau Kategori "Pakan") seharusnya dikunci (Protected) agar Admin pengguna tidak bisa tidak sengaja men-Delete-nya dan menyebabkan error pada keseluruhan basis data sistem?
- Apakah ada penyesuaian khusus untuk *Group Menu* di Sidebar kiri nantinya (misalnya dijadikan satu Accordion menu bernama "Data Referensi")?

## Verification Plan

### Manual Verification
- Meluncurkan server lokal, masuk ke menu `Data Referensi`.
- Membuka sub-menu *Jenis Kandang* atau *Kategori Barang* dan menguji coba membuat *entry* referensi baru.
- Memastikan tipe baru tersebut langsung bermunculan sebagai pilihan di _Dropdown_ form operasi lainnya (misalnya Form Tambah Gudang atau Kandang).
