# Panduan Data Demo Sistem SDM Puskesmas

Dokumen ini menjelaskan cara menghapus data lama dan mengisi data demo lengkap (99 pegawai) untuk kebutuhan demonstrasi sistem.

---

## 1. Menghapus Data Lama dan Mengisi Data Demo

Untuk **reset database** dan mengisi **data demo lengkap** (1 pimpinan, 1 kepala TU, 99 pegawai dengan data terlengkap), jalankan:

```bash
php artisan migrate:fresh --seed
```

**Perhatian:** Perintah ini akan:
- Menghapus semua tabel dan membuat ulang (sesuai migration).
- Menghapus semua data yang ada.
- Menjalankan seeder `DemoDataSeeder` yang mengisi:
  - 1 user **pimpinan** (username: `pimpinan`)
  - 1 user **kepala tata usaha** (username: `kepalatu`) + 1 data pegawai Kepala TU
  - 99 user **pegawai** (username: `pegawai001` s/d `pegawai099`) + 99 data pegawai lengkap

**Password semua user:** `password123`

---

## 2. Isi Data Demo

| Data | Keterangan |
|------|------------|
| **Users** | 1 pimpinan, 1 kepala TU, 99 pegawai (total 101 user) |
| **Pegawai** | 1 Kepala TU + 99 pegawai (total 100 pegawai) dengan data lengkap: NIP, nama, jabatan, golongan, poli, pendidikan, STR/SIP (jika medis), atasan langsung, dll. |
| **Riwayat jabatan** | Setiap pegawai memiliki riwayat jabatan. |
| **Sertifikasi pelatihan** | Setiap pegawai 1 sertifikasi. |
| **Riwayat diklat** | Setiap pegawai 1 riwayat diklat. |
| **Riwayat penugasan** | Setiap pegawai 1 penugasan aktif. |
| **Absensi** | 4 bulan (3 bulan lalu + bulan berjalan) per pegawai, dengan variasi status: Hadir, Izin, Sakit, Cuti, Alpha. |
| **Cuti** | 2–5 pengajuan cuti per pegawai (campuran masa lalu dan mendatang), dengan status: Menunggu Persetujuan, Disetujui, Ditolak. |
| **Gaji** | 4 bulan per pegawai (Draft / Disetujui / Dibayar) dengan perhitungan berdasarkan absensi. |
| **Notifikasi** | Contoh notifikasi pengajuan cuti untuk pimpinan. |

---

## 3. Hanya Menjalankan Seeder (Tanpa Reset Migration)

Jika database sudah ada dan Anda **hanya ingin menambah** data demo (tanpa `migrate:fresh`), jalankan:

```bash
php artisan db:seed --class=DemoDataSeeder
```

**Catatan:** Jika tabel `users` atau `pegawai` sudah terisi, seeder bisa gagal karena duplikasi username/NIP. Untuk demo bersih, disarankan menggunakan `migrate:fresh --seed`.

---

## 4. Fitur Cuti: Export/Import Dihapus

Fitur **export** dan **import** pada modul data cuti telah dihapus dari sistem. Yang tetap ada:

- Lihat daftar cuti (filter status, pegawai, tanggal).
- Pegawai: ajukan cuti, lihat detail, download PDF surat cuti.
- Kepala TU: verifikasi administrasi, edit, hapus data cuti.
- Pimpinan: approve/reject pengajuan cuti.
- Download PDF per surat cuti (tetap tersedia).

---

## 5. Login Demo

| Role | Username | Password | Keterangan |
|------|----------|----------|------------|
| Pimpinan | `pimpinan` | `password123` | Approve/reject cuti, lihat laporan (read-only) |
| Kepala TU | `kepalatu` | `password123` | CRUD pegawai, absensi, cuti, gaji; verifikasi cuti |
| Pegawai | `pegawai001` … `pegawai099` | `password123` | Lihat data sendiri, ajukan cuti, lihat absensi & gaji |

Setelah `migrate:fresh --seed`, gunakan salah satu user di atas untuk mendemokan sistem.
