import '../../../../core/resources/data_state.dart';
import '../../../../core/usecase/use_case.dart';
import '../entities/user_entity.dart';

/// قرارداد لایه‌ی داده‌ی احراز هویت (پیاده‌سازی در data/repository).
abstract class AuthRepository {
  Future<DataState<String>> loginOtp(String mobile);

  /// بررسی کد؛ توکن را ذخیره کرده و کاربرِ احرازشده را برمی‌گرداند.
  Future<DataState<UserEntity>> checkOtp(OtpParams params);

  Future<DataState<UserEntity>> updateProfile(ProfileParams params);

  Future<DataState<String>> logout();

  Future<bool> isLoggedIn();
}
