using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Tenants.Entities;

/// <summary>
/// 租户配额使用情况。
/// </summary>
public sealed class TenantQuotaUsage : AuditableEntityBase
{
    /// <summary>
    /// 租户 ID（雪花算法）。
    /// </summary>
    public long TenantId { get; set; }

    /// <summary>
    /// 配额类型。
    /// </summary>
    public TenantQuotaType QuotaType { get; set; }

    /// <summary>
    /// 配额上限值。
    /// </summary>
    public decimal LimitValue { get; set; }

    /// <summary>
    /// 已使用值。
    /// </summary>
    public decimal UsedValue { get; set; }

    /// <summary>
    /// 重置周期（如 monthly、yearly）。
    /// </summary>
    public string? ResetCycle { get; set; }

    /// <summary>
    /// 上次重置时间。
    /// </summary>
    public DateTime? LastResetAt { get; set; }
}
