# Task Breakdown: 16 - Scheduler Cron Auto-Absent

**Referensi Dokumen:** FR-09.4, FR-10.4, FR-11.4, Tech Spec 5
**Tujuan:** Robot penjaga *Background* Laravel `artisan schedule:run` untuk merazia pengguna (guru/murid/jadwal mangkir) otomatis di jam krusial yang sudah di-seting. Bekerja tanpa sentuhan campur tangan manusia.

## 1. File Commands
- [ ] Buat Console Command: `php artisan make:command AutoAbsentTeachers`.
  - Logika: Ambil baris profil guru aktif yang belum terdapat id-nya di log rekam presensi hari ini sejak semalam (kecuali Hari itu adalah waktu libur. Cek *isHoliday* parameter).
  - Tulis / Set default baris absensinya dipaksa berisi `Absent` dan dikunci ke kolom `is_auto = true`.
- [ ] Buat Console Command: `php artisan make:command AutoAbsentStudents`.
  - Serupa dengan script di atas, bedakan loop dengan filter membedakan array siswa terklasifikasi grup per Kelasnya (mewaspadai *Holidays per class* pengecualian denda absent otomatis).
- [ ] Buat Console Command: `php artisan make:command AutoNotTeaching`.
  - Pengecekan silang terhadap Akhir Waktu (*End Time*) tabel `SCHEDULES`. Bila jam sesi bel habis, tapi pada jam yang sejalan tidak muncul sebaris Record sesi mengajar dari Guru atau penggantinya, coret sesi ini ke default state *Not Teaching*.
  
## 2. Pendaftaran di Sistem Laravel
- [ ] Masukkan penjejak tugas Console ini di blok `Console/Kernel.php` atau `routes/console.php`. Sinkronisasi jam penggeraknya sesuai dengan tabel referensi dari Facade global *Settings* (contoh: *Pukul 10:00 Auto Absent*).

## 3. Acceptance Criteria
- [ ] Pekerjaan cron job tidak menabrak baris duplikasi, dieksekusi secara elegan menolak mem-vonis *Alpa* di kalender merah.
- [ ] Kolom penanda forensik pelengkap `is_auto` senantiasa terwujud dengan `true` sebagai penanda bahwa hukuman ketidakhadiran dikalkulasi secara paksa lewat robot timer.
