feat: add payment

This commit is contained in:
2026-07-05 16:03:15 +03:30
parent c2356b3242
commit 5017e9a613
30 changed files with 470 additions and 65 deletions
+23 -2
View File
@@ -46,7 +46,12 @@ import '../../feature/wallet/domain/repository/wallet_repository.dart';
import '../../feature/wallet/domain/use_cases/claim_daily_usecase.dart';
import '../../feature/wallet/domain/use_cases/get_wallet_usecase.dart';
import '../../feature/wallet/presentation/bloc/wallet_bloc.dart';
import '../config.dart';
import '../network/api_provider_imp.dart';
import '../payment/bazaar_payment_gateway.dart';
import '../payment/dev_payment_gateway.dart';
import '../payment/myket_payment_gateway.dart';
import '../payment/payment_gateway.dart';
import '../storage/token_storage.dart';
final GetIt locator = GetIt.instance;
@@ -94,6 +99,9 @@ Future<void> setupLocator() async {
locator.registerSingleton<SelectCardUseCase>(SelectCardUseCase(locator()));
locator.registerSingleton<PurchaseUseCase>(PurchaseUseCase(locator()));
locator.registerSingleton<AdRewardUseCase>(AdRewardUseCase(locator()));
// درگاهِ پرداخت بر اساسِ flavorِ فعال (مایکت/کافه‌بازار/توسعه).
locator.registerSingleton<PaymentGateway>(_gatewayForStore(AppConfig.store));
locator.registerSingleton<GetProfileUseCase>(GetProfileUseCase(locator()));
locator.registerSingleton<SaveProfileUseCase>(SaveProfileUseCase(locator()));
locator.registerSingleton<GetLeaderboardUseCase>(
@@ -106,8 +114,8 @@ Future<void> setupLocator() async {
locator.registerFactory<AuthBloc>(
() => AuthBloc(locator(), locator(), locator(), locator()));
locator.registerFactory<WalletBloc>(() => WalletBloc(locator(), locator()));
locator.registerFactory<ShopBloc>(() =>
ShopBloc(locator(), locator(), locator(), locator(), locator()));
locator.registerFactory<ShopBloc>(() => ShopBloc(
locator(), locator(), locator(), locator(), locator(), locator()));
locator.registerFactory<ProfileBloc>(
() => ProfileBloc(locator(), locator()));
locator.registerFactory<LeaderboardBloc>(() => LeaderboardBloc(locator()));
@@ -115,3 +123,16 @@ Future<void> setupLocator() async {
locator.registerFactory<TierBloc>(() => TierBloc(locator()));
locator.registerFactory<PrivateInfoBloc>(() => PrivateInfoBloc(locator()));
}
/// درگاهِ پرداختِ متناظر با flavor. buildهای بدونِ flavor از درگاهِ توسعه
/// استفاده می‌کنند (بک‌اند در DevFallback می‌پذیرد).
PaymentGateway _gatewayForStore(String store) {
switch (store) {
case 'myket':
return MyketPaymentGateway();
case 'bazaar':
return BazaarPaymentGateway();
default:
return DevPaymentGateway();
}
}