using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace NexusReader.Domain.Entities; /// /// Encapsulates a snapshot or draft version of a Book's chapters. /// public class BookRevision { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] public Guid BookId { get; set; } [ForeignKey(nameof(BookId))] public virtual Book Book { get; set; } = null!; [Required] [MaxLength(100)] public string VersionString { get; set; } = "Working Draft"; public bool IsPublished { get; set; } = false; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? PublishedAt { get; set; } public virtual ICollection Chapters { get; set; } = new List(); }