# Bobot Kerugian Hazard oleh Pelapor

## Tujuan

Fitur ini memungkinkan akun dengan role `Pelapor` memberikan bobot tingkat kerugian pada hazard miliknya sendiri.

## Struktur database

Kolom baru pada tabel `hazard_reports`:

```sql
tingkat_cedera_id INT NULL
```

Kolom ini menyimpan referensi ke tabel master:

```sql
tingkat_cedera.id
```

Index:

```sql
idx_hazard_tingkat_cedera
```

## Sumber pilihan bobot

Pilihan diambil dari tabel `tingkat_cedera`, dengan informasi:

- `level`
- `kategori`
- `deskripsi_cedera`
- `batas_kerugian_min`
- `batas_kerugian_max`
- `keterangan_kerugian`

Nilai bobot tingkat kerugian menggunakan `tingkat_cedera.level`.

## Alur penggunaan

1. Pelapor login ke AIMS.
2. Buka menu `Hasil Analisis`.
3. Pada kolom `Bobot Kerugian`, pilih tingkat cedera/kerugian dari dropdown.
4. Klik tombol simpan pada baris hazard tersebut.
5. Sistem hanya mengizinkan update jika `hazard_reports.userID` sama dengan `source_user_id` atau `username` akun Pelapor.

## Keamanan

- Update menggunakan PDO prepared statement.
- Request POST dilindungi CSRF token.
- Role selain `Pelapor` tidak dapat menyimpan bobot.
- Pelapor tidak dapat mengubah hazard milik akun lain.

## Persiapan Risk Matrix

Data ini dapat digabung dengan bobot frekuensi:

```text
Risk Score = Bobot Frekuensi × Bobot Tingkat Cedera
```
