new project stable version
This commit is contained in:
12
lib/domain/usecase/activate_subscription_usecase.dart
Normal file
12
lib/domain/usecase/activate_subscription_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/repositories/payment_repository.dart';
|
||||
|
||||
class ActivateSubscriptionUsecase {
|
||||
final PaymentRepository repository;
|
||||
|
||||
ActivateSubscriptionUsecase(this.repository);
|
||||
|
||||
Future<Result<bool>> call(int optionId) {
|
||||
return repository.activateSubscription(optionId);
|
||||
}
|
||||
}
|
||||
24
lib/domain/usecase/add_payment_card_usecase.dart
Normal file
24
lib/domain/usecase/add_payment_card_usecase.dart
Normal file
@@ -0,0 +1,24 @@
|
||||
import '../repositories/payment_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class AddPaymentCardUsecase {
|
||||
final PaymentRepository repository;
|
||||
|
||||
AddPaymentCardUsecase(this.repository);
|
||||
|
||||
Future<Result<void>> call({
|
||||
required String cardNumber,
|
||||
required String cardHolder,
|
||||
required String expiryMonth,
|
||||
required String expiryYear,
|
||||
required String cvv,
|
||||
}) {
|
||||
return repository.addPaymentCard(
|
||||
cardNumber: cardNumber,
|
||||
cardHolder: cardHolder,
|
||||
expiryMonth: expiryMonth,
|
||||
expiryYear: expiryYear,
|
||||
cvv: cvv,
|
||||
);
|
||||
}
|
||||
}
|
||||
27
lib/domain/usecase/book_scooter_usecase.dart
Normal file
27
lib/domain/usecase/book_scooter_usecase.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class BookScooterUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
BookScooterUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call({
|
||||
required int scooterId,
|
||||
required int planId,
|
||||
int? subscriptionId,
|
||||
int? cardId,
|
||||
required bool isBalance,
|
||||
required bool isInsurance,
|
||||
}) {
|
||||
return repository.bookScooter(
|
||||
scooterId: scooterId,
|
||||
planId: planId,
|
||||
subscriptionId: subscriptionId,
|
||||
cardId: cardId,
|
||||
isBalance: isBalance,
|
||||
isInsurance: isInsurance,
|
||||
);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/cancel_notification_usecase.dart
Normal file
12
lib/domain/usecase/cancel_notification_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:be_happy/domain/entities/client_notification.dart';
|
||||
import 'package:be_happy/domain/repositories/notification_repository.dart';
|
||||
|
||||
class CancelNotificationUseCase {
|
||||
final NotificationRepository repository;
|
||||
|
||||
CancelNotificationUseCase(this.repository);
|
||||
|
||||
Future<ClientNotification> call(int id) async {
|
||||
return await repository.cancelNotification(id);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/cancel_ride_usecase.dart
Normal file
13
lib/domain/usecase/cancel_ride_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class CancelRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
CancelRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId) {
|
||||
return repository.cancelRide(orderId);
|
||||
}
|
||||
}
|
||||
27
lib/domain/usecase/change_pin_usecase.dart
Normal file
27
lib/domain/usecase/change_pin_usecase.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:be_happy/domain/repositories/pin_repository.dart';
|
||||
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class ChangePinUseCase {
|
||||
final PinRepository repository;
|
||||
|
||||
ChangePinUseCase(this.repository);
|
||||
|
||||
Future<void> call({
|
||||
required String oldPin,
|
||||
required String newPin,
|
||||
}) async {
|
||||
final savedPin = await repository.getSavedPin();
|
||||
|
||||
if (savedPin != oldPin) {
|
||||
throw Exception('Wrong old PIN');
|
||||
}
|
||||
|
||||
if (newPin.length != 6) {
|
||||
throw Exception('Invalid new PIN');
|
||||
}
|
||||
|
||||
await repository.savePin(newPin);
|
||||
}
|
||||
}
|
||||
|
||||
12
lib/domain/usecase/check_user_usecase.dart
Normal file
12
lib/domain/usecase/check_user_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../entities/user_check_flags.dart';
|
||||
import '../repositories/profile_repository.dart';
|
||||
|
||||
class CheckUserUseCase {
|
||||
final UserProfileRepository repository;
|
||||
|
||||
CheckUserUseCase(this.repository);
|
||||
|
||||
Future<UserCheckFlags?> call() {
|
||||
return repository.checkUser();
|
||||
}
|
||||
}
|
||||
27
lib/domain/usecase/create_pin_usecase.dart
Normal file
27
lib/domain/usecase/create_pin_usecase.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:be_happy/domain/repositories/pin_repository.dart';
|
||||
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class CreatePinUseCase {
|
||||
final PinRepository repository;
|
||||
|
||||
CreatePinUseCase(this.repository);
|
||||
|
||||
Future<void> call(String pin) async {
|
||||
_validate(pin);
|
||||
|
||||
final hashed = _hash(pin);
|
||||
await repository.savePin(hashed);
|
||||
}
|
||||
|
||||
void _validate(String pin) {
|
||||
if (pin.length != 6) {
|
||||
throw Exception('PIN must be 6 digits');
|
||||
}
|
||||
}
|
||||
|
||||
String _hash(String pin) {
|
||||
// временно просто pin
|
||||
return pin;
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/finish_ride_usecase.dart
Normal file
13
lib/domain/usecase/finish_ride_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class FinishRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
FinishRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId, List<int> files) {
|
||||
return repository.finishRide(orderId, files);
|
||||
}
|
||||
}
|
||||
11
lib/domain/usecase/get_address_by_point_usecase.dart
Normal file
11
lib/domain/usecase/get_address_by_point_usecase.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
import 'package:be_happy/data/network/geocoding_remote_datasource.dart';
|
||||
|
||||
class GetAddressByPointUsecase {
|
||||
final GeocodingRemoteDataSource dataSource;
|
||||
|
||||
GetAddressByPointUsecase(this.dataSource);
|
||||
|
||||
Future<String> call(double latitude, double longitude) {
|
||||
return dataSource.getAddressFromPoint(latitude: latitude, longitude: longitude);
|
||||
}
|
||||
}
|
||||
15
lib/domain/usecase/get_available_scooters_usecase.dart
Normal file
15
lib/domain/usecase/get_available_scooters_usecase.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:be_happy/domain/entities/scooter.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
|
||||
class GetAvailableScootersUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetAvailableScootersUsecase(this.repository);
|
||||
|
||||
Future<List<Scooter>> call(List<double> area, int page, int pageSize) {
|
||||
return repository.getScooters(area, page, pageSize);
|
||||
}
|
||||
}
|
||||
|
||||
14
lib/domain/usecase/get_available_subscriptions_usecase.dart
Normal file
14
lib/domain/usecase/get_available_subscriptions_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/subscription.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetAvailableSubscriptionsUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetAvailableSubscriptionsUsecase(this.repository);
|
||||
|
||||
Future<Result<List<Subscription>>> call() {
|
||||
return repository.getAvailableSubscriptions();
|
||||
}
|
||||
}
|
||||
14
lib/domain/usecase/get_available_tariffs_usecase.dart
Normal file
14
lib/domain/usecase/get_available_tariffs_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/tariff.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetAvailableTariffsUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetAvailableTariffsUsecase(this.repository);
|
||||
|
||||
Future<Result<List<Tariff>>> call(int scooterId) {
|
||||
return repository.getAvailableTariffs(scooterId);
|
||||
}
|
||||
}
|
||||
15
lib/domain/usecase/get_available_zones_usecase.dart
Normal file
15
lib/domain/usecase/get_available_zones_usecase.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
import '../entities/zone.dart';
|
||||
import '../repositories/zone_repository.dart';
|
||||
|
||||
|
||||
class GetAvailableZonesUsecase {
|
||||
final ZoneRepository repository;
|
||||
|
||||
GetAvailableZonesUsecase(this.repository);
|
||||
|
||||
Future<List<Zone>?> call(List<double> area, int page, int pageSize) {
|
||||
return repository.getZones(area, page, pageSize);
|
||||
}
|
||||
}
|
||||
|
||||
13
lib/domain/usecase/get_certificates_usecase.dart
Normal file
13
lib/domain/usecase/get_certificates_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import '../entities/certificate.dart';
|
||||
import '../repositories/certificate_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class GetCertificatesUsecase {
|
||||
final CertificateRepository repository;
|
||||
|
||||
GetCertificatesUsecase(this.repository);
|
||||
|
||||
Future<Result<List<Certificate>>> call() async {
|
||||
return await repository.getCertificates();
|
||||
}
|
||||
}
|
||||
15
lib/domain/usecase/get_client_orders_usecase.dart
Normal file
15
lib/domain/usecase/get_client_orders_usecase.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
|
||||
class GetClientOrdersUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetClientOrdersUsecase(this.repository);
|
||||
|
||||
Future<Result<List<ScooterOrder>>> call() {
|
||||
return repository.getClientOrders();
|
||||
}
|
||||
}
|
||||
20
lib/domain/usecase/get_client_subscriptions_usecase.dart
Normal file
20
lib/domain/usecase/get_client_subscriptions_usecase.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/subscription.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetClientSubscriptionsUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetClientSubscriptionsUsecase(this.repository);
|
||||
|
||||
Future<Result<List<Subscription>>> call() {
|
||||
return repository.getClientSubscriptions();
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/get_map_settings_usecase.dart
Normal file
12
lib/domain/usecase/get_map_settings_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:be_happy/domain/entities/map_settings.dart';
|
||||
import 'package:be_happy/domain/repositories/app_settings_repository.dart';
|
||||
|
||||
class GetMapSettingsUsecase {
|
||||
AppSettingsRepository repository;
|
||||
|
||||
GetMapSettingsUsecase(this.repository);
|
||||
|
||||
Future<MapSettings> call() {
|
||||
return repository.getMapSettings();
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/get_news_by_id_usecase.dart
Normal file
12
lib/domain/usecase/get_news_by_id_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../entities/news.dart';
|
||||
import '../repositories/news_repository.dart';
|
||||
|
||||
class GetNewsByIdUsecase {
|
||||
final NewsRepository repository;
|
||||
|
||||
GetNewsByIdUsecase(this.repository);
|
||||
|
||||
Future<NewsEntity> call(int id) {
|
||||
return repository.getNewsById(id);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/get_notifications_stream_usecase.dart
Normal file
12
lib/domain/usecase/get_notifications_stream_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:be_happy/domain/entities/client_notification.dart';
|
||||
import 'package:be_happy/domain/repositories/notification_repository.dart';
|
||||
|
||||
class GetNotificationsStreamUseCase {
|
||||
final NotificationRepository repository;
|
||||
|
||||
GetNotificationsStreamUseCase(this.repository);
|
||||
|
||||
Stream<ClientNotification> call() {
|
||||
return repository.getNotificationsStream();
|
||||
}
|
||||
}
|
||||
31
lib/domain/usecase/get_payment_cards_usecase.dart
Normal file
31
lib/domain/usecase/get_payment_cards_usecase.dart
Normal file
@@ -0,0 +1,31 @@
|
||||
import 'package:be_happy/domain/service/security_service.dart';
|
||||
|
||||
import '../entities/payment_card.dart';
|
||||
import '../repositories/payment_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class GetPaymentCardsUsecase {
|
||||
final PaymentRepository repository;
|
||||
final SecurityService securityService;
|
||||
|
||||
GetPaymentCardsUsecase(this.repository, this.securityService);
|
||||
|
||||
Future<Result<List<PaymentCard>>> call() async {
|
||||
final result = await repository.getPaymentCards();
|
||||
|
||||
if (result is Failure) {
|
||||
return result;
|
||||
}
|
||||
|
||||
final cards = (result as Success).data as List<PaymentCard>;
|
||||
|
||||
// Для каждой карты получаем полный номер из локального хранилища
|
||||
/*final cardsWithFullNumbers = <PaymentCard>[];
|
||||
for (final card in cards) {
|
||||
final fullNumber = await securityService.getCardFullNumber(card.id);
|
||||
cardsWithFullNumbers.add(card.copyWith(fullCardNumber: fullNumber));
|
||||
}*/
|
||||
|
||||
return Success(cards);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/get_pedestrian_routes_usecase.dart
Normal file
12
lib/domain/usecase/get_pedestrian_routes_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:be_happy/data/network/geocoding_remote_datasource.dart';
|
||||
import 'package:yandex_mapkit/yandex_mapkit.dart';
|
||||
|
||||
class GetPedestrianRoutesUsecase {
|
||||
final GeocodingRemoteDataSource dataSource;
|
||||
|
||||
GetPedestrianRoutesUsecase(this.dataSource);
|
||||
|
||||
Future<List<MasstransitRoute>?> call(Point userPosition, Point targetPosition) {
|
||||
return dataSource.getPedestrianRoutes(userPosition, targetPosition);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/get_profile_usecase.dart
Normal file
13
lib/domain/usecase/get_profile_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import '../entities/user_profile.dart';
|
||||
import '../repositories/profile_repository.dart';
|
||||
|
||||
class GetProfileUseCase {
|
||||
final UserProfileRepository repository;
|
||||
|
||||
GetProfileUseCase(this.repository);
|
||||
|
||||
Future<UserProfile> call() {
|
||||
return repository.getProfile();
|
||||
}
|
||||
}
|
||||
|
||||
14
lib/domain/usecase/get_scooter_by_title_usecase.dart
Normal file
14
lib/domain/usecase/get_scooter_by_title_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetScooterByTitleUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetScooterByTitleUsecase(this.repository);
|
||||
|
||||
Future<Result<Scooter?>> call(String title) {
|
||||
return repository.getScooterByTitle(title);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/get_scooter_order_by_id_usecase.dart
Normal file
13
lib/domain/usecase/get_scooter_order_by_id_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import '../entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetScooterOrderByIdUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetScooterOrderByIdUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int id) {
|
||||
return repository.getScooterOrderById(id);
|
||||
}
|
||||
}
|
||||
19
lib/domain/usecase/get_scooter_order_history_usecase.dart
Normal file
19
lib/domain/usecase/get_scooter_order_history_usecase.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import 'package:be_happy/domain/repositories/scooter_repository.dart';
|
||||
|
||||
class GetScooterOrderHistoryUsecase {
|
||||
final ScooterRepository _repository;
|
||||
|
||||
GetScooterOrderHistoryUsecase(this._repository);
|
||||
|
||||
Future<Result<List<ScooterOrder>>> call({
|
||||
int page = 1,
|
||||
int pageSize = 20,
|
||||
}) async {
|
||||
return await _repository.getScooterOrderHistory(
|
||||
page: page,
|
||||
pageSize: pageSize,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/point.dart';
|
||||
import 'package:be_happy/domain/repositories/scooter_repository.dart';
|
||||
|
||||
class GetScooterOrderRouteHistoryUsecase {
|
||||
final ScooterRepository _repository;
|
||||
|
||||
GetScooterOrderRouteHistoryUsecase(this._repository);
|
||||
|
||||
Future<Result<List<Point>>> call(int id) async {
|
||||
return await _repository.getScooterOrderRouteHistory(id);
|
||||
}
|
||||
}
|
||||
16
lib/domain/usecase/get_scooter_usecase.dart
Normal file
16
lib/domain/usecase/get_scooter_usecase.dart
Normal file
@@ -0,0 +1,16 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
|
||||
class GetScooterUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetScooterUsecase(this.repository);
|
||||
|
||||
Future<Result<Scooter?>> call(int id) {
|
||||
return repository.getScooter(id);
|
||||
}
|
||||
}
|
||||
|
||||
14
lib/domain/usecase/get_subscription_by_id_usecase.dart
Normal file
14
lib/domain/usecase/get_subscription_by_id_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/subscription.dart';
|
||||
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class GetSubscriptionByIdUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
GetSubscriptionByIdUsecase(this.repository);
|
||||
|
||||
Future<Result<Subscription>> call(int id) {
|
||||
return repository.getSubscriptionById(id);
|
||||
}
|
||||
}
|
||||
17
lib/domain/usecase/is_pin_set_usecase.dart
Normal file
17
lib/domain/usecase/is_pin_set_usecase.dart
Normal file
@@ -0,0 +1,17 @@
|
||||
import 'package:be_happy/domain/repositories/pin_repository.dart';
|
||||
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class IsPinSetUsecase {
|
||||
final PinRepository repository;
|
||||
|
||||
IsPinSetUsecase(this.repository);
|
||||
|
||||
Future<bool> call() async {
|
||||
if (await repository.getSavedPin() == null) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
lib/domain/usecase/login_usecase.dart
Normal file
11
lib/domain/usecase/login_usecase.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class LoginUseCase {
|
||||
final AuthRepository _repository;
|
||||
|
||||
LoginUseCase(this._repository);
|
||||
|
||||
Future<String> execute(String phone) async {
|
||||
return await _repository.login(phone);
|
||||
}
|
||||
}
|
||||
15
lib/domain/usecase/logout_usecase.dart
Normal file
15
lib/domain/usecase/logout_usecase.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:be_happy/domain/repositories/pin_repository.dart';
|
||||
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class LogoutUseCase {
|
||||
final AuthRepository _authRepository;
|
||||
final PinRepository _pinRepository;
|
||||
|
||||
LogoutUseCase(this._authRepository, this._pinRepository);
|
||||
|
||||
Future<void> call() async {
|
||||
await _authRepository.logout();
|
||||
await _pinRepository.removePin();
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/pause_ride_usecase.dart
Normal file
13
lib/domain/usecase/pause_ride_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class PauseRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
PauseRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId) {
|
||||
return repository.pauseRide(orderId);
|
||||
}
|
||||
}
|
||||
14
lib/domain/usecase/pay_ride_usecase.dart
Normal file
14
lib/domain/usecase/pay_ride_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class PayRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
PayRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId, int? cardId,
|
||||
bool isBalance) {
|
||||
return repository.payScooterOrderWithPhotos(orderId: orderId, cardId: cardId, isBalance: isBalance);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import '../entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class PayScooterOrderWithPhotosUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
PayScooterOrderWithPhotosUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call({
|
||||
required int orderId,
|
||||
required int cardId,
|
||||
required bool isBalance,
|
||||
}) {
|
||||
return repository.payScooterOrderWithPhotos(
|
||||
orderId: orderId,
|
||||
cardId: cardId,
|
||||
isBalance: isBalance,
|
||||
);
|
||||
}
|
||||
}
|
||||
19
lib/domain/usecase/purchase_certificate_usecase.dart
Normal file
19
lib/domain/usecase/purchase_certificate_usecase.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import '../entities/certificate.dart';
|
||||
import '../repositories/certificate_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class PurchaseCertificateUsecase {
|
||||
final CertificateRepository repository;
|
||||
|
||||
PurchaseCertificateUsecase(this.repository);
|
||||
|
||||
Future<Result<Map<String, dynamic>>> call({
|
||||
required int certificateId,
|
||||
required int cardId,
|
||||
}) async {
|
||||
return await repository.purchaseCertificate(
|
||||
certificateId: certificateId,
|
||||
cardId: cardId,
|
||||
);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/refresh_token_usecase.dart
Normal file
12
lib/domain/usecase/refresh_token_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../entities/user_auth_data.dart';
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class RefreshTokenUseCase {
|
||||
final AuthRepository _repository;
|
||||
|
||||
RefreshTokenUseCase(this._repository);
|
||||
|
||||
Future<UserAuthData> execute() async {
|
||||
return await _repository.refreshToken();
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/remove_payment_card_usecase.dart
Normal file
12
lib/domain/usecase/remove_payment_card_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../repositories/payment_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class RemovePaymentCardUsecase {
|
||||
final PaymentRepository repository;
|
||||
|
||||
RemovePaymentCardUsecase(this.repository);
|
||||
|
||||
Future<Result<void>> call(int cardId) {
|
||||
return repository.removePaymentCard(cardId);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/resume_ride_usecase.dart
Normal file
13
lib/domain/usecase/resume_ride_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class ResumeRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
ResumeRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId) {
|
||||
return repository.resumeRide(orderId);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/save_map_settings_usecase.dart
Normal file
13
lib/domain/usecase/save_map_settings_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/domain/entities/map_settings.dart';
|
||||
|
||||
import '../repositories/app_settings_repository.dart';
|
||||
|
||||
class SaveMapSettingsUsecase {
|
||||
AppSettingsRepository repository;
|
||||
|
||||
SaveMapSettingsUsecase(this.repository);
|
||||
|
||||
Future<void> call(MapSettings settings) {
|
||||
return repository.saveMapSettings(settings);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/set_main_payment_card_usecase.dart
Normal file
12
lib/domain/usecase/set_main_payment_card_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../repositories/payment_repository.dart';
|
||||
import '../../core/result.dart';
|
||||
|
||||
class SetMainPaymentCardUsecase {
|
||||
final PaymentRepository repository;
|
||||
|
||||
SetMainPaymentCardUsecase(this.repository);
|
||||
|
||||
Future<Result<void>> call(int cardId) {
|
||||
return repository.setMainPaymentCard(cardId);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/start_ride_usecase.dart
Normal file
13
lib/domain/usecase/start_ride_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class StartRideUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
StartRideUsecase(this.repository);
|
||||
|
||||
Future<Result<ScooterOrder>> call(int orderId) {
|
||||
return repository.startRide(orderId);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/update_profile_usecase.dart
Normal file
12
lib/domain/usecase/update_profile_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import '../entities/user_profile.dart';
|
||||
import '../repositories/profile_repository.dart';
|
||||
|
||||
class UpdateProfileUseCase {
|
||||
final UserProfileRepository repository;
|
||||
|
||||
UpdateProfileUseCase(this.repository);
|
||||
|
||||
Future<UserProfile?> call(UserProfile profile) {
|
||||
return repository.updateProfile(profile);
|
||||
}
|
||||
}
|
||||
18
lib/domain/usecase/update_scooter_order_data_usecase.dart
Normal file
18
lib/domain/usecase/update_scooter_order_data_usecase.dart
Normal file
@@ -0,0 +1,18 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import 'package:be_happy/domain/entities/active_scooter_order.dart';
|
||||
import '../entities/scooter_order.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class UpdateScooterOrderDataUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
UpdateScooterOrderDataUsecase(this.repository);
|
||||
|
||||
Future<Result<ActiveScooterOrder>> call({
|
||||
required int orderId,
|
||||
}) {
|
||||
return repository.updateScooterOrderData(
|
||||
orderId: orderId,
|
||||
);
|
||||
}
|
||||
}
|
||||
12
lib/domain/usecase/upload_profile_photo_usecase.dart
Normal file
12
lib/domain/usecase/upload_profile_photo_usecase.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'dart:io';
|
||||
import '../repositories/profile_repository.dart';
|
||||
|
||||
class UploadProfilePhotoUsecase {
|
||||
final UserProfileRepository repository;
|
||||
|
||||
UploadProfilePhotoUsecase(this.repository);
|
||||
|
||||
Future<int?> call(File imageFile) {
|
||||
return repository.uploadProfilePhoto(imageFile);
|
||||
}
|
||||
}
|
||||
13
lib/domain/usecase/upload_scooter_photos_usecase.dart
Normal file
13
lib/domain/usecase/upload_scooter_photos_usecase.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'dart:io';
|
||||
import 'package:be_happy/core/result.dart';
|
||||
import '../repositories/scooter_repository.dart';
|
||||
|
||||
class UploadScooterPhotosUsecase {
|
||||
final ScooterRepository repository;
|
||||
|
||||
UploadScooterPhotosUsecase(this.repository);
|
||||
|
||||
Future<Result<List<int>>> call(List<File> images) {
|
||||
return repository.uploadScooterPhotos(images);
|
||||
}
|
||||
}
|
||||
14
lib/domain/usecase/verify_code_usecase.dart
Normal file
14
lib/domain/usecase/verify_code_usecase.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:be_happy/core/result.dart';
|
||||
|
||||
import '../entities/user_auth_data.dart';
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class VerifyCodeUseCase {
|
||||
final AuthRepository _repository;
|
||||
|
||||
VerifyCodeUseCase(this._repository);
|
||||
|
||||
Future<Result<void>> execute(String code, String token) {
|
||||
return _repository.verifyCode(code, token);
|
||||
}
|
||||
}
|
||||
15
lib/domain/usecase/verify_pin_usecase.dart
Normal file
15
lib/domain/usecase/verify_pin_usecase.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:be_happy/domain/repositories/pin_repository.dart';
|
||||
|
||||
import '../repositories/auth_repository.dart';
|
||||
|
||||
class VerifyPinUseCase {
|
||||
final PinRepository repository;
|
||||
|
||||
VerifyPinUseCase(this.repository);
|
||||
|
||||
Future<bool> call(String enteredPin) async {
|
||||
final savedPin = await repository.getSavedPin();
|
||||
return enteredPin == savedPin;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user