feat: ClubMembershipCycle IHasHistory + PackageId in WalletHistory (F1)
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m33s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m33s
- ClubMembershipCycle now implements IHasHistory<ClubMembershipCycleHistory> - CreateHistorySnapshot: New* fields from current state, Old* auto-filled by interceptor - Parses action string to ClubMembershipCycleAction enum - Add PackageId to 6 UserWalletHistory creation sites (F1 fix): - VerifyPackagePurchaseCommandHandler: balanceLog + discountLog (order.PackageId) - CheckAndProcessDayaLoansCommandHandler: mainLog + discountLog (package.Id) - CreateManualPaymentCommandHandler: walletLog (package.Id) - PackageService.CustomerVerifyPackagePurchase: walletLog (purchase.PackageId) - Non-package flows (orders, commissions, manual) correctly keep PackageId=null
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
using CMSMicroservice.Domain.Common;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
|
||||
namespace CMSMicroservice.Domain.Entities.Club;
|
||||
|
||||
/// <summary>
|
||||
/// دوره خرید پکیج — هر بار خرید پکیج ۵۶M یک Cycle جدید ایجاد میشود.
|
||||
/// برای حل مشکل overwrite شدن ClubMembership.ActivatedAt در محاسبه کمیسیون.
|
||||
/// </summary>
|
||||
public class ClubMembershipCycle : BaseAuditableEntity
|
||||
public class ClubMembershipCycle : BaseAuditableEntity, IHasHistory<History.ClubMembershipCycleHistory>
|
||||
{
|
||||
/// <summary>
|
||||
/// شناسه کاربر
|
||||
@@ -74,4 +77,26 @@ public class ClubMembershipCycle : BaseAuditableEntity
|
||||
|
||||
/// <summary>تاریخچه تغییرات دوره (Q27)</summary>
|
||||
public virtual ICollection<History.ClubMembershipCycleHistory>? CycleHistories { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ساخت snapshot تاریخچه از وضعیت فعلی چرخه.
|
||||
/// مقادیر New* از وضعیت فعلی پر میشوند.
|
||||
/// مقادیر Old* توسط HistoryTrackingSaveChangesInterceptor از OriginalValues پر میشوند.
|
||||
/// </summary>
|
||||
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<ClubMembershipCycleAction>(action, out var a)
|
||||
? a
|
||||
: ClubMembershipCycleAction.ManualFix,
|
||||
PerformedBy = performedBy
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user