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 PrivateEntityLabels { get; set; } = new List(); public virtual ICollection PrivateStreamingPlatforms { get; set; } = new List(); } }