using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace OnlyPrompt.Backend.Database.Models { [Table("UserSubscriptions")] [PrimaryKey(nameof(SubscriberId), nameof(SubscribedToId))] public class SubscriptionModel { [Required] [ForeignKey(nameof(SubscribedTo))] public Guid SubscribedToId { get; set; } [DeleteBehavior(DeleteBehavior.Cascade)] public required virtual UserModel SubscribedTo { get; set; } [Required] [ForeignKey(nameof(Subscriber))] public Guid SubscriberId { get; set; } [DeleteBehavior(DeleteBehavior.Cascade)] public required virtual UserModel Subscriber { get; set; } [ForeignKey(nameof(SubscriptionTier))] public virtual Guid? SubscriptionTierId { get; set; } [DeleteBehavior(DeleteBehavior.SetNull)] public virtual SubscriptionTierModel? SubscriptionTier { get; set; } } }