using Meezi.Core.Enums;

namespace Meezi.Core.Entities;

public class SubscriptionPayment : TenantEntity
{
    public PlanTier PlanTier { get; set; }
    public int Months { get; set; }
    public decimal AmountToman { get; set; }
    public long AmountRials { get; set; }
    public PaymentProvider Provider { get; set; } = PaymentProvider.ZarinPal;
    public string? Authority { get; set; }
    public string? RefId { get; set; }
    public SubscriptionPaymentStatus Status { get; set; } = SubscriptionPaymentStatus.Pending;

    /// <summary>When this paid period starts. For an immediately-activated purchase this is
    /// (around) the payment time; for a queued (Scheduled) purchase it is the end of the
    /// current coverage. Null until the payment completes.</summary>
    public DateTime? EffectiveFrom { get; set; }

    /// <summary>When this paid period ends (EffectiveFrom + Months). Null until completed.</summary>
    public DateTime? EffectiveTo { get; set; }

    public Cafe Cafe { get; set; } = null!;
}
