# Task Breakdown: 02 - Master Pengguna & Profil

**Referensi Dokumen:** FR-01.6, FR-02, NFR-02
**Tujuan:** Mengelola data kredensial akses (`USERS`) khusus bagi `super_admin`, sekaligus menyinkronkan profil (`TEACHERS` dan `STUDENTS`). Memungkinkan setiap profil mengubah sandi mereka sendiri.

## 1. Controllers
- [ ] Buat `UserController` (`super_admin`):
  - CRUD dasar untuk Akun User: form email, ubah password akun lain oleh admin, dan aktivasi (`is_active` switcher).
- [ ] Buat `TeacherController` (`super_admin`):
  - Manajemen master `TEACHERS` (nomor pegawai, foto, gender). 
  - Pastikan setiap ada `TEACHERS` yang dibuat secara konvensional, terkait ke satu baris di tabel `USERS` dengan `role = 'teacher'`.
- [ ] Buat `StudentController` (`super_admin`):
  - Manajemen master `STUDENTS` (nomor induk, foto, gender, `classroom_id`).
  - Auto-generate tabel `USERS` untuk setiap Student dibuat.
- [ ] Buat `ProfileController` (Global/Umum):
  - Khusus untuk fungsi *My Profile*. Edit data foto profil dan Reset / Edit current password diri sendiri (dibutuhkan konfirmasi password lama).

## 2. Observer / Service Logic
- [ ] (Opsional/Sangat Disarankan) Buat `Observer` bagi model `USERS` / `TEACHERS` / `STUDENTS` untuk menjamin penciptaan akun login (Kredensial) terjadi secara simulus melalui *Database Transaction* apabila tidak dilakukan dari dalam controller.
- [ ] Implementasikan file upload untuk foto di `storage/app/public/...` dan simpan URL-nya di basis data profil bersangkutan.

## 3. Form Requests
- [ ] `StoreUserRequest` & `UpdateUserRequest`
- [ ] `StoreTeacherProfileRequest` & `StoreStudentProfileRequest`
- [ ] `UpdatePasswordRequest` (konfirmasi sandi lama dan *match validator* sandi baru).

## 4. Acceptance Criteria
- [ ] Setiap guru/murid divalidasi memiliki entitas pasangan *user account* yang berjalan harmonis tanpa duplikasi email.
- [ ] Reset password per mandiri tervalidasi menggunakan validasi string BCrypt di database.
- [ ] Status Aktif-Tidak-Aktif tervalidasi sinkron antara Data User dengan Data Guru/Siswa.
