import 'package:niogu_app/core/enums/member_level.dart';
import 'package:niogu_app/features/profile/domain/entities/profile.dart';

abstract class IProfileRepository {
  Stream<double> watchProfileCompleteness();

  Stream<double> watchBusinessCompleteness();

  Stream<double> watchOutletCompleteness();

  Stream<MemberLevel> watchMemberLevel();

  Future<ProfileInfo> fetchProfileInfo();

  Future<int> updateProfile(UpsertProfile profile);

  Future<BusinessInfo> fetchBusinessInfo();

  Future<int> updateBusinessInfo(BusinessInfo business);

  Future<bool> validatePassword(String inputPassword);

  Future<int> updatePassword(String newPassword);
}