using MediatR;
using MembershipService.Domain.AggregatesModel.MemberAggregate;

namespace MembershipService.Domain.Events;

/// <summary>
/// EN: Domain event raised when membership level is changed.
/// VI: Domain event được phát ra khi cấp thành viên thay đổi.
/// </summary>
public class MembershipLevelChangedDomainEvent : INotification
{
    public Member Member { get; }
    public MembershipLevel OldLevel { get; }
    public MembershipLevel NewLevel { get; }

    public MembershipLevelChangedDomainEvent(
        Member member,
        MembershipLevel oldLevel,
        MembershipLevel newLevel)
    {
        Member = member;
        OldLevel = oldLevel;
        NewLevel = newLevel;
    }
}
