fix functional bugs

This commit is contained in:
2026-05-29 11:40:55 +03:00
parent 591265a7fc
commit 134ffdde60
50 changed files with 1086 additions and 771 deletions

View File

@@ -0,0 +1,24 @@
import 'package:be_happy/domain/entities/subscription.dart';
class ClientSubscription {
final int id;
final int subscriptionId;
final Subscription subscription;
final DateTime? expiredAt;
ClientSubscription({
required this.id,
required this.subscriptionId,
required this.subscription,
this.expiredAt,
});
factory ClientSubscription.fromJson(Map<String, dynamic> json) {
return ClientSubscription(
id: json['id'] ?? 0,
subscriptionId: json['subscriptionId'] ?? 0,
subscription: Subscription.fromJson(json['subscription'] as Map<String, dynamic>),
expiredAt: json['expiredAt'] != null ? DateTime.parse(json['expiredAt']) : null,
);
}
}

View File

@@ -43,8 +43,9 @@ class Scooter {
);
}
@override
String toString() {
return 'Scooter{id: $id, title: $title}';
return 'Scooter{id: $id, title: $title, status: $status, latitude: $latitude, longitude: $longitude, batteryLevel: $batteryLevel, isOnline: $isOnline}';
}
}

View File

@@ -3,7 +3,7 @@ import 'scooter.dart';
class ScooterOrder {
final int id;
final int scooterId;
final Scooter? scooter;
final Scooter scooter;
final int? planId;
final ScooterPlan? plan;
final int clientId;
@@ -33,7 +33,7 @@ class ScooterOrder {
ScooterOrder({
required this.id,
required this.scooterId,
this.scooter,
required this.scooter,
this.planId,
this.plan,
required this.clientId,
@@ -65,7 +65,7 @@ class ScooterOrder {
return ScooterOrder(
id: json['id'] ?? 0,
scooterId: json['scooterId'] ?? 0,
scooter: json['scooter'] != null ? Scooter.fromJson(json['scooter']) : null,
scooter: Scooter.fromJson(json['scooter']),
planId: json['planId'],
plan: json['plan'] != null ? ScooterPlan.fromJson(json['plan']) : null,
clientId: json['clientId'] ?? 0,

View File

@@ -8,6 +8,7 @@ class Subscription {
final String fullDescription;
final int planId;
final bool isActive;
final bool isCurrent;
final String currency;
final DateTime? activeFrom;
final DateTime? activeTo;
@@ -28,6 +29,7 @@ class Subscription {
this.activeTo,
required this.createdAt,
required this.updatedAt,
required this.isCurrent,
required this.options,
});
@@ -48,6 +50,7 @@ class Subscription {
activeTo: json['activeTo'] != null ? DateTime.parse(json['activeTo']) : null,
createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt']) : DateTime.now(),
updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt']) : DateTime.now(),
isCurrent: json['isCurrent'] ?? false,
options: optionsData.map((e) => SubscriptionPeriod.fromJson(e as Map<String, dynamic>)).toList(),
);
}

View File

@@ -4,6 +4,7 @@ import 'dart:io';
import 'package:be_happy/domain/entities/active_scooter_order.dart';
import '../../core/result.dart';
import '../entities/client_subscription.dart';
import '../entities/point.dart';
import '../entities/scooter.dart';
import '../entities/subscription.dart';
@@ -16,7 +17,7 @@ abstract class ScooterRepository {
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<List<ClientSubscription>>> getClientSubscriptions();
Future<Result<ScooterOrder>> bookScooter({
required int scooterId,
required int planId,
@@ -30,13 +31,13 @@ abstract class ScooterRepository {
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<void>> 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({
Future<Result<void>> payScooterOrderWithPhotos({
required int orderId,
required int? cardId,
required bool isBalance,

View File

@@ -1,6 +1,7 @@
import 'package:be_happy/core/result.dart';
import 'package:be_happy/domain/entities/scooter_order.dart';
import '../entities/client_subscription.dart';
import '../repositories/scooter_repository.dart';
@@ -14,7 +15,7 @@ class GetClientSubscriptionsUsecase {
GetClientSubscriptionsUsecase(this.repository);
Future<Result<List<Subscription>>> call() {
Future<Result<List<ClientSubscription>>> call() {
return repository.getClientSubscriptions();
}
}

View File

@@ -7,7 +7,7 @@ class PayRideUsecase {
PayRideUsecase(this.repository);
Future<Result<ScooterOrder>> call(int orderId, int? cardId,
Future<Result<void>> call(int orderId, int? cardId,
bool isBalance) {
return repository.payScooterOrderWithPhotos(orderId: orderId, cardId: cardId, isBalance: isBalance);
}

View File

@@ -7,7 +7,7 @@ class PayScooterOrderWithPhotosUsecase {
PayScooterOrderWithPhotosUsecase(this.repository);
Future<Result<ScooterOrder>> call({
Future<Result<void>> call({
required int orderId,
required int cardId,
required bool isBalance,