mnemo_cards/lib/managers/repository/repository.dart

50 lines
1.1 KiB
Dart
Raw Normal View History

2024-05-22 20:48:44 +00:00
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);
2024-06-16 19:01:33 +00:00
Future<void> applyPromocode(String promocode);
2024-05-22 20:48:44 +00:00
Future<(UserDto, String)> createOrGetUser(
String externalId,
ExternalIdType idType,
2024-07-25 07:47:46 +00:00
String email,
2024-07-03 20:56:13 +00:00
String? name,
2024-05-22 20:48:44 +00:00
);
Future<UserDto?> getUser();
2024-07-03 20:56:13 +00:00
void setAuthToken(String? authToken);
2024-06-12 23:00:13 +00:00
Future<void> updateUserData(UserDataDto data);
2024-05-22 20:48:44 +00:00
2024-06-12 23:00:13 +00:00
Future<void> updateUserSettings(UserSettingsDto settings);
Future<void> addTestStatistics(TestStatisticsDto testStatistics);
2024-06-16 19:01:33 +00:00
Future<List<TestDto>> getTests();
2024-05-22 20:48:44 +00:00
Future<TestDto?> getTest(String id);
2024-08-03 22:37:10 +00:00
Future<bool> checkPayment({
2024-08-18 16:52:03 +00:00
required MnemoCardsProduct product,
2024-08-03 22:37:10 +00:00
required String key,
required PaymentSystem paymentSystem,
});
2024-05-22 20:48:44 +00:00
Future<bool> checkUserPayment();
2024-08-18 16:52:03 +00:00
Future<YookassaPaymentDto?> createPayment(
String id,
MnemoCardsProductType productType,
PaymentSystem type,
);
Future<bool> deleteUser(String id);
2024-05-22 20:48:44 +00:00
}