52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace WatchLog.Data
|
|
{
|
|
public class PrivateEntity
|
|
{
|
|
[Key]
|
|
public int Id { get; set; }
|
|
|
|
public bool Favorite { get; set; } = false;
|
|
|
|
[MaxLength(1000)]
|
|
public string? Description { get; set; }
|
|
|
|
public int? Season { get; set; }
|
|
|
|
public int? Episode { get; set; }
|
|
|
|
public int? Rating { get; set; }
|
|
|
|
[Required]
|
|
public required DateTime CreationTime { get; set; }
|
|
|
|
public DateTime? LastChange { get; set; }
|
|
|
|
|
|
// --- Foreign Keys ---
|
|
[Required]
|
|
public string? UserId { get; set; }
|
|
|
|
[Required]
|
|
public int GlobalEntityId { get; set; }
|
|
|
|
public int? UserWatchStatusId { get; set; }
|
|
|
|
|
|
// --- Navigation Properties ---
|
|
[ForeignKey(nameof(UserId))]
|
|
public virtual ApplicationUser User { get; set; } = null!;
|
|
|
|
[ForeignKey(nameof(GlobalEntityId))]
|
|
public virtual GlobalEntity GlobalEntity { get; set; } = null!;
|
|
|
|
[ForeignKey(nameof(UserWatchStatusId))]
|
|
public virtual UserWatchStatus? UserWatchStatus { get; set; }
|
|
|
|
public virtual ICollection<LinkTablePrivateLabel> PrivateEntityLabels { get; set; } = new List<LinkTablePrivateLabel>();
|
|
|
|
public virtual ICollection<LinkTablePrivateStreamingPlatform> PrivateStreamingPlatforms { get; set; } = new List<LinkTablePrivateStreamingPlatform>();
|
|
}
|
|
} |