new project stable version

This commit is contained in:
2026-05-10 19:11:31 +03:00
commit 3616f84556
391 changed files with 23857 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
import 'package:be_happy/domain/entities/map_settings.dart';
abstract class AppSettingsRepository {
Future<MapSettings> getMapSettings();
Future<void> saveMapSettings(MapSettings settings);
}

View File

@@ -0,0 +1,14 @@
import 'dart:ffi';
import '../../core/result.dart';
import '../entities/user_auth_data.dart';
abstract class AuthRepository {
Future<String> login(String phone);
Future<Result<void>> verifyCode(String code, String token);
Future<UserAuthData> refreshToken();
Future<void> logout();
}

View File

@@ -0,0 +1,11 @@
import '../../core/result.dart';
import '../entities/certificate.dart';
abstract class CertificateRepository {
Future<Result<List<Certificate>>> getCertificates();
Future<Result<Map<String, dynamic>>> purchaseCertificate({
required int certificateId,
required int cardId,
});
}

View File

@@ -0,0 +1,3 @@
abstract class LaunchRepository {
Future<bool> isFirstLaunch();
}

View File

@@ -0,0 +1,6 @@
import '../entities/news.dart';
abstract class NewsRepository {
Future<List<NewsEntity>> getNews();
Future<NewsEntity> getNewsById(int id);
}

View File

@@ -0,0 +1,12 @@
import 'package:be_happy/domain/entities/client_notification.dart';
abstract class NotificationRepository {
/// Устанавливает постоянное SSE-соединение и возвращает поток уведомлений
Stream<ClientNotification> getNotificationsStream();
/// Отменяет уведомление по ID
Future<ClientNotification> cancelNotification(int id);
/// Закрывает SSE-соединение
void closeStream();
}

View File

@@ -0,0 +1,20 @@
import '../../core/result.dart';
import '../entities/payment_card.dart';
abstract class PaymentRepository {
Future<Result<List<PaymentCard>>> getPaymentCards();
Future<Result<void>> addPaymentCard({
required String cardNumber,
required String cardHolder,
required String expiryMonth,
required String expiryYear,
required String cvv,
});
Future<Result<void>> setMainPaymentCard(int cardId);
Future<Result<void>> removePaymentCard(int cardId);
Future<Result<bool>> activateSubscription(int optionId);
}

View File

@@ -0,0 +1,9 @@
import '../entities/user_auth_data.dart';
abstract class PinRepository {
Future<String?> getSavedPin();
Future<void> savePin(String? pin);
Future<void> removePin();
}

View File

@@ -0,0 +1,12 @@
import 'dart:io';
import '../entities/user_check_flags.dart';
import '../entities/user_profile.dart';
abstract class UserProfileRepository {
Future<UserProfile> getProfile();
Future<UserProfile?> updateProfile(UserProfile profile);
Future<int?> uploadProfilePhoto(File imageFile);
Future<UserCheckFlags?> checkUser();
}

View File

@@ -0,0 +1,55 @@
import 'dart:io';
import 'package:be_happy/domain/entities/active_scooter_order.dart';
import '../../core/result.dart';
import '../entities/point.dart';
import '../entities/scooter.dart';
import '../entities/subscription.dart';
import '../entities/tariff.dart';
import '../entities/scooter_order.dart';
abstract class ScooterRepository {
Future<List<Scooter>> getScooters(List<double> area, int page, int pageSize);
Future<Result<Scooter?>> getScooter(int id);
Future<Result<List<Tariff>>> getAvailableTariffs(int scooterId);
Future<Result<List<Subscription>>> getAvailableSubscriptions();
Future<Result<Subscription>> getSubscriptionById(int id);
Future<Result<List<Subscription>>> getClientSubscriptions();
Future<Result<ScooterOrder>> bookScooter({
required int scooterId,
required int planId,
int? subscriptionId,
int? cardId,
required bool isBalance,
required bool isInsurance,
});
Future<Result<ScooterOrder>> startRide(int orderId);
Future<Result<ScooterOrder>> cancelRide(int orderId);
Future<Result<ScooterOrder>> pauseRide(int orderId);
Future<Result<ScooterOrder>> resumeRide(int orderId);
Future<Result<ScooterOrder>> finishRide(int orderId, List<int> files);
Future<Result<ScooterOrder>> payRide(int orderId);
Future<Result<List<ScooterOrder>>> getClientOrders();
Future<Result<List<int>>> uploadScooterPhotos(List<File> images);
Future<Result<ActiveScooterOrder>> updateScooterOrderData({
required int orderId,
});
Future<Result<ScooterOrder>> payScooterOrderWithPhotos({
required int orderId,
required int? cardId,
required bool isBalance,
});
Future<Result<ScooterOrder>> getScooterOrderById(int id);
Future<Result<List<ScooterOrder>>> getScooterOrderHistory({
int page = 1,
int pageSize = 20,
});
Future<Result<Scooter?>> getScooterByTitle(String title);
Future<Result<List<Point>>> getScooterOrderRouteHistory(int id);
}

View File

@@ -0,0 +1,6 @@
import '../entities/zone.dart';
abstract class ZoneRepository {
Future<List<Zone>> getZones(List<double> area, int page, int pageSize);
}