namespace PromotionService.Domain.AggregatesModel.CampaignAggregate;

using PromotionService.Domain.SeedWork;

/// <summary>
/// EN: How the user acquires the voucher.
/// VI: Cách người dùng nhận voucher.
/// </summary>
public class AcquisitionType : Enumeration
{
    /// <summary>
    /// EN: Free voucher (giveaway).
    /// VI: Voucher miễn phí (tặng).
    /// </summary>
    public static readonly AcquisitionType Free = new(1, nameof(Free));

    /// <summary>
    /// EN: Exchange with loyalty points.
    /// VI: Đổi bằng điểm thưởng.
    /// </summary>
    public static readonly AcquisitionType ExchangePoints = new(2, nameof(ExchangePoints));

    /// <summary>
    /// EN: Purchase with currency.
    /// VI: Mua bằng tiền tệ.
    /// </summary>
    public static readonly AcquisitionType Purchase = new(3, nameof(Purchase));

    protected AcquisitionType() : base(0, "Unknown") { }
    public AcquisitionType(int id, string name) : base(id, name) { }
}
