diff --git a/src/CMSMicroservice.Application/DayaLoanCQ/Commands/CheckAndProcessDayaLoans/CheckAndProcessDayaLoansCommandHandler.cs b/src/CMSMicroservice.Application/DayaLoanCQ/Commands/CheckAndProcessDayaLoans/CheckAndProcessDayaLoansCommandHandler.cs index fb0aa33..68defb2 100644 --- a/src/CMSMicroservice.Application/DayaLoanCQ/Commands/CheckAndProcessDayaLoans/CheckAndProcessDayaLoansCommandHandler.cs +++ b/src/CMSMicroservice.Application/DayaLoanCQ/Commands/CheckAndProcessDayaLoans/CheckAndProcessDayaLoansCommandHandler.cs @@ -231,7 +231,8 @@ public class CheckAndProcessDayaLoansCommandHandler : IRequestHandler /// دوره خرید پکیج — هر بار خرید پکیج ۵۶M یک Cycle جدید ایجاد می‌شود. /// برای حل مشکل overwrite شدن ClubMembership.ActivatedAt در محاسبه کمیسیون. /// -public class ClubMembershipCycle : BaseAuditableEntity +public class ClubMembershipCycle : BaseAuditableEntity, IHasHistory { /// /// شناسه کاربر @@ -74,4 +77,26 @@ public class ClubMembershipCycle : BaseAuditableEntity /// تاریخچه تغییرات دوره (Q27) public virtual ICollection? CycleHistories { get; set; } + + /// + /// ساخت snapshot تاریخچه از وضعیت فعلی چرخه. + /// مقادیر New* از وضعیت فعلی پر می‌شوند. + /// مقادیر Old* توسط HistoryTrackingSaveChangesInterceptor از OriginalValues پر می‌شوند. + /// + public History.ClubMembershipCycleHistory CreateHistorySnapshot(string action, string? performedBy) + { + return new History.ClubMembershipCycleHistory + { + ClubMembershipCycleId = Id, + UserId = UserId, + CycleNumber = CycleNumber, + NewIsCurrentCycle = IsCurrentCycle, + NewMagicStartedAt = MagicStartedAt, + NewMagicCompletedAt = MagicCompletedAt, + Action = Enum.TryParse(action, out var a) + ? a + : ClubMembershipCycleAction.ManualFix, + PerformedBy = performedBy + }; + } } diff --git a/src/CMSMicroservice.WebApi/Services/PackageService.cs b/src/CMSMicroservice.WebApi/Services/PackageService.cs index 0942b26..3ad2be6 100644 --- a/src/CMSMicroservice.WebApi/Services/PackageService.cs +++ b/src/CMSMicroservice.WebApi/Services/PackageService.cs @@ -331,7 +331,8 @@ public class PackageService : PackageContract.PackageContractBase CurrentDiscountBalance = wallet.DiscountBalance, ChangeDiscountValue = discountAmount, IsIncrease = true, - RefrenceId = transaction.Id + RefrenceId = transaction.Id, + PackageId = purchase.PackageId }; _context.UserWalletHistories.Add(walletLog);