import '../models/user_model.dart'; /// Kontrak/Interface abstrak untuk Layanan Autentikasi. /// Mendefinisikan method standar yang wajib diimplementasikan oleh penyedia layanan autentikasi (misal: Supabase, Firebase, atau Custom API). abstract class AuthService { /// Melakukan login menggunakan email dan password. Mengembalikan data profil user [UserModel]. Future login(String email, String password); /// Mendaftarkan akun baru dengan Nama, Email, dan Password. Future register(String name, String email, String password); /// Menghubungkan perangkat keras ESP32 dengan akun user berdasarkan kode klaim. Future claimDevice(String userId, String claimCode); /// Keluar dari sesi login saat ini dan membersihkan token autentikasi. Future logout(); /// Memeriksa status sesi yang tersimpan di lokal perangkat saat aplikasi pertama kali dibuka. Future checkSession(); }