using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace NexusReader.Domain.Entities; /// /// Represents a Book metadata entry that references its decoupled revisions. /// public class Book { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] [MaxLength(255)] public string Title { get; set; } = string.Empty; [Required] [MaxLength(128)] public string TenantId { get; set; } = "global"; [Required] public string UserId { get; set; } = string.Empty; [ForeignKey(nameof(UserId))] public virtual NexusUser? User { get; set; } public Guid? CurrentDraftRevisionId { get; set; } [ForeignKey(nameof(CurrentDraftRevisionId))] public virtual BookRevision? CurrentDraftRevision { get; set; } public Guid? LivePublishedRevisionId { get; set; } [ForeignKey(nameof(LivePublishedRevisionId))] public virtual BookRevision? LivePublishedRevision { get; set; } public virtual ICollection Revisions { get; set; } = new List(); }