# HRIS Database Core

File diagram:
- `docs/flowcharts/hris-database-core.drawio`

Fokus diagram:
- relasi inti master data HRIS
- jembatan dari karyawan ke assignment bulanan
- hubungan attendance, SPL, approval, BPJS, dan payroll
- area relasi yang paling sering dipakai saat audit engine

Dasar struktur yang dipakai:
- [MasterKaryawan migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\MasterKaryawan\Database\migrations)
- [MasterProfilBulan migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\MasterProfilBulan\Database\migrations)
- [AttendanceReview migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\AttendanceReview\Database\migrations)
- [MasterApproval migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\MasterApproval\Database\migrations)
- [SuratPerintahLembur migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\SuratPerintahLembur\Database\migrations)
- [Penggajian migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\Penggajian\Database\migrations)
- [MasterBpjs migrations](D:\APP\LARAVEL_DEFAULT\AHSP\app\Modules\MasterBpjs\Database\migrations)

Pembacaan singkat:
1. `master_karyawans` adalah pusat identitas karyawan.
2. Struktur organisasi dan penempatan datang dari `master_jabatans`, `master_clients`, dan `master_areas`.
3. Riwayat area, offering letter, dokumen kontrak, dokumen pendukung, dan link tanda tangan digital melekat ke karyawan.
4. `master_profil_bulan_karyawans` adalah assignment bulanan yang menjadi titik temu attendance, payroll, BPJS, dan override komponen.
5. Attendance review, SPL, dan request approval masuk dari sisi transaksi operasional.
6. Approval memakai pasangan tabel `approval_requests` dan `approval_request_steps`.
7. Output payroll disimpan di `payroll_payment_histories` dan detail BPJS per pembayaran disimpan terpisah agar audit lebih mudah.

Catatan penting:
- Diagram ini adalah peta database inti, bukan ERD lengkap seluruh modul.
- Untuk approval, beberapa modul request lain memakai pola `module_key + reference_id` pada `approval_requests`.
- Untuk kontrak digital, `master_karyawan_signature_requests.payload` layak dipakai sebagai snapshot isi dokumen saat link dibuat.

Langkah lanjutan yang cocok:
- buat versi ERD per tabel detail
- buat map relasi khusus payroll dan BPJS
- buat map relasi khusus contract, document, dan signature
