TKK_E32230206/lib/services/auth_service.dart

21 lines
952 B
Dart

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<UserModel> login(String email, String password);
/// Mendaftarkan akun baru dengan Nama, Email, dan Password.
Future<UserModel> register(String name, String email, String password);
/// Menghubungkan perangkat keras ESP32 dengan akun user berdasarkan kode klaim.
Future<String> claimDevice(String userId, String claimCode);
/// Keluar dari sesi login saat ini dan membersihkan token autentikasi.
Future<void> logout();
/// Memeriksa status sesi yang tersimpan di lokal perangkat saat aplikasi pertama kali dibuka.
Future<UserModel?> checkSession();
}