feat(Q27): PackageHistory + ClubMembershipCycleHistory entities
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m28s

Q27: History Tables standardization — added missing history entities:
- PackageHistory: tracks price, activation fee, magic settings changes
- ClubMembershipCycleHistory: tracks cycle state transitions
- PackageAction + ClubMembershipCycleAction enums
- EF configurations with proper indexes and FK relationships
- DbSets registered in IApplicationDbContext + ApplicationDbContext
- Navigation properties on Package + ClubMembershipCycle entities
This commit is contained in:
masoodafar-web
2026-02-27 05:31:21 +03:30
parent a1024a3e18
commit fdbb91d2e1
10 changed files with 308 additions and 0 deletions
@@ -0,0 +1,73 @@
namespace CMSMicroservice.Domain.Entities.History;
/// <summary>
/// تاریخچه تغییرات دوره عضویت باشگاه (Q27)
/// هر بار تغییر وضعیت چرخه (شروع، ورود/خروج جادویی، تکمیل)، یک رکورد ذخیره می‌شود.
/// </summary>
public class ClubMembershipCycleHistory : BaseAuditableEntity
{
/// <summary>
/// شناسه چرخه
/// </summary>
public long ClubMembershipCycleId { get; set; }
/// <summary>
/// ClubMembershipCycle Navigation Property
/// </summary>
public virtual Club.ClubMembershipCycle? ClubMembershipCycle { get; set; }
/// <summary>
/// شناسه کاربر
/// </summary>
public long UserId { get; set; }
/// <summary>
/// شماره دور
/// </summary>
public int CycleNumber { get; set; }
/// <summary>
/// IsCurrentCycle قبل از تغییر
/// </summary>
public bool OldIsCurrentCycle { get; set; }
/// <summary>
/// IsCurrentCycle بعد از تغییر
/// </summary>
public bool NewIsCurrentCycle { get; set; }
/// <summary>
/// تاریخ شروع جادویی قبل از تغییر
/// </summary>
public DateTime? OldMagicStartedAt { get; set; }
/// <summary>
/// تاریخ شروع جادویی بعد از تغییر
/// </summary>
public DateTime? NewMagicStartedAt { get; set; }
/// <summary>
/// تاریخ تکمیل جادویی قبل از تغییر
/// </summary>
public DateTime? OldMagicCompletedAt { get; set; }
/// <summary>
/// تاریخ تکمیل جادویی بعد از تغییر
/// </summary>
public DateTime? NewMagicCompletedAt { get; set; }
/// <summary>
/// نوع عملیات
/// </summary>
public ClubMembershipCycleAction Action { get; set; }
/// <summary>
/// چه کسی انجام داده (UserId یا "System")
/// </summary>
public string? PerformedBy { get; set; }
/// <summary>
/// دلیل تغییر (اختیاری)
/// </summary>
public string? Reason { get; set; }
}