// EN: Settlement cycle enumeration.
// VI: Enumeration chu kỳ thanh toán.

using MerchantService.Domain.SeedWork;

namespace MerchantService.Domain.AggregatesModel.MerchantAggregate;

/// <summary>
/// EN: Represents the settlement cycle for merchant payouts.
/// VI: Đại diện cho chu kỳ thanh toán cho merchant.
/// </summary>
public class SettlementCycle : Enumeration
{
    /// <summary>
    /// EN: Daily settlement.
    /// VI: Thanh toán hàng ngày.
    /// </summary>
    public static readonly SettlementCycle Daily = new(1, nameof(Daily));
    
    /// <summary>
    /// EN: Weekly settlement.
    /// VI: Thanh toán hàng tuần.
    /// </summary>
    public static readonly SettlementCycle Weekly = new(2, nameof(Weekly));
    
    /// <summary>
    /// EN: Monthly settlement.
    /// VI: Thanh toán hàng tháng.
    /// </summary>
    public static readonly SettlementCycle Monthly = new(3, nameof(Monthly));

    public SettlementCycle(int id, string name) : base(id, name)
    {
    }
}
