using MongoDB.Bson.Serialization.Attributes;
namespace QRRapidoApp.Models
{
///
/// Embedded document tracking the user's API subscription (separate from the QR credits plan).
///
public class ApiSubscription
{
[BsonElement("tier")]
public ApiPlanTier Tier { get; set; } = ApiPlanTier.Free;
/// "free" | "active" | "past_due" | "canceled"
[BsonElement("status")]
public string Status { get; set; } = "free";
[BsonElement("stripeSubscriptionId")]
public string? StripeSubscriptionId { get; set; }
[BsonElement("stripeCustomerId")]
public string? StripeCustomerId { get; set; }
[BsonElement("currentPeriodEnd")]
public DateTime? CurrentPeriodEnd { get; set; }
[BsonElement("activatedAt")]
public DateTime? ActivatedAt { get; set; }
[BsonElement("canceledAt")]
public DateTime? CanceledAt { get; set; }
public bool IsActive => Status == "active" && (CurrentPeriodEnd == null || CurrentPeriodEnd > DateTime.UtcNow);
public ApiPlanTier EffectiveTier => IsActive ? Tier : ApiPlanTier.Free;
}
}