21 lines
952 B
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();
|
|
}
|