using System.ComponentModel.DataAnnotations; namespace Hutopy.Modules.Memberships.Data; public class Membership { public Guid Id { get; set; } public DateTimeOffset CreatedAt { get; set; } public Guid UserId { get; set; } public Guid CreatorId { get; set; } public Guid TierId { get; set; } public MembershipTier? MembershipTier { get; set; } public MembershipState State { get; set; } public DateTimeOffset? StartDate { get; set; } public DateTimeOffset? EndDate { get; set; } public bool IsActive => EndDate == null || EndDate > DateTimeOffset.UtcNow; [MaxLength(256)] public string? StripeSubscriptionId { get; set; } public ICollection Payments { get; set; } = []; }