feat: refactor code
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
/// موجودیتِ کیفپول و وضعیت اقتصادیِ کاربر (بههمراه نام و آواتار برای نوار لابی).
|
||||
class WalletEntity {
|
||||
final int coins;
|
||||
final int tickets;
|
||||
final int xp;
|
||||
final int trophies;
|
||||
final int level;
|
||||
final int xpIntoLevel;
|
||||
final int xpForNext;
|
||||
final bool vip;
|
||||
final String selectedCard;
|
||||
final String name;
|
||||
final String avatar;
|
||||
|
||||
const WalletEntity({
|
||||
required this.coins,
|
||||
required this.tickets,
|
||||
required this.xp,
|
||||
required this.trophies,
|
||||
required this.level,
|
||||
required this.xpIntoLevel,
|
||||
required this.xpForNext,
|
||||
required this.vip,
|
||||
required this.selectedCard,
|
||||
required this.name,
|
||||
required this.avatar,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import '../../../../core/resources/data_state.dart';
|
||||
import '../entities/wallet_entity.dart';
|
||||
|
||||
abstract class WalletRepository {
|
||||
Future<DataState<WalletEntity>> getWallet();
|
||||
|
||||
/// دریافت سکه روزانه؛ مقدار دریافتی را برمیگرداند.
|
||||
Future<DataState<int>> claimDaily();
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import '../../../../core/resources/data_state.dart';
|
||||
import '../../../../core/usecase/use_case.dart';
|
||||
import '../repository/wallet_repository.dart';
|
||||
|
||||
class ClaimDailyUseCase implements UseCase<DataState<int>, NoParams> {
|
||||
final WalletRepository repository;
|
||||
ClaimDailyUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<DataState<int>> call(NoParams params) => repository.claimDaily();
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import '../../../../core/resources/data_state.dart';
|
||||
import '../../../../core/usecase/use_case.dart';
|
||||
import '../entities/wallet_entity.dart';
|
||||
import '../repository/wallet_repository.dart';
|
||||
|
||||
class GetWalletUseCase implements UseCase<DataState<WalletEntity>, NoParams> {
|
||||
final WalletRepository repository;
|
||||
GetWalletUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<DataState<WalletEntity>> call(NoParams params) =>
|
||||
repository.getWallet();
|
||||
}
|
||||
Reference in New Issue
Block a user