feat: Magic Wallet Phase 6 + Daya restriction + purchase cycle count

- ActivateClubMembershipCommandHandler: block activation in Magic mode
- CheckAndProcessDayaLoansCommandHandler: reject Daya after first cycle
- userwallet.proto: add purchase_cycle_count to GetMagicWalletStatusResponse
- UserWalletService: query ClubMembershipCycles count for cycle info
- EF Migration u21: ClubMembershipCycle table + UserWallet Magic fields
This commit is contained in:
masoodafar-web
2026-02-22 20:04:13 +03:30
parent bdd2c51726
commit 58d419ced3
7 changed files with 5062 additions and 1 deletions
@@ -88,6 +88,18 @@ public class ActivateClubMembershipCommandHandler : IRequestHandler<ActivateClub
);
}
// 3.5. بررسی وضعیت کیف‌پول جادویی — اگر در حالت Magic است، فعالسازی مجاز نیست
if (wallet.WalletMode == WalletMode.Magic)
{
_logger.LogWarning(
"User {UserId} cannot activate club while in Magic wallet mode",
request.UserId
);
throw new BadRequestException(
"ابتدا باید چرخه کیف‌پول جادویی تکمیل شود"
);
}
// 4. پیدا کردن UserOrder با PackageId
var packageOrder = await _context.UserOrders
.Include(o => o.Transaction)