33 lines
925 B
C#
33 lines
925 B
C#
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; }
|
|
}
|
|
}
|