mnemo_cards/lib/managers/repository/repository.dart
2024-08-04 01:37:10 +03:00

43 lines
1,003 B
Dart

import 'package:mnemo_cards/managers/user_manager.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
abstract class Repository {
Future<UserDto> get user;
Stream<UserDto> get userStream;
Future<void> updateUser(UserDto dto);
Future<void> applyPromocode(String promocode);
Future<(UserDto, String)> createOrGetUser(
String externalId,
ExternalIdType idType,
String email,
String? name,
);
Future<UserDto?> getUser();
void setAuthToken(String? authToken);
Future<void> updateUserData(UserDataDto data);
Future<void> updateUserSettings(UserSettingsDto settings);
Future<void> addTestStatistics(TestStatisticsDto testStatistics);
Future<List<TestDto>> getTests();
Future<TestDto?> getTest(String id);
Future<bool> checkPayment({
required String itemId,
required String key,
required PaymentSystem paymentSystem,
});
Future<bool> checkUserPayment();
Future<String?> createPayment(String id, PaymentSystem type);
}