mirror of
				https://github.com/Kareadita/Kavita.git
				synced 2025-11-04 03:27:05 -05:00 
			
		
		
		
	Co-authored-by: Fesaa <77553571+Fesaa@users.noreply.github.com> Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using API.Entities.Enums;
 | 
						|
using API.Entities.Interfaces;
 | 
						|
 | 
						|
namespace API.Entities;
 | 
						|
 | 
						|
/// <summary>
 | 
						|
/// Represents an annotation in the Epub reader
 | 
						|
/// </summary>
 | 
						|
public class AppUserAnnotation : IEntityDate
 | 
						|
{
 | 
						|
    public int Id { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// Starting point of the Highlight
 | 
						|
    /// </summary>
 | 
						|
    public required string XPath { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// Ending point of the Highlight. Can be the same as <see cref="XPath"/>
 | 
						|
    /// </summary>
 | 
						|
    public string EndingXPath { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// The text selected.
 | 
						|
    /// </summary>
 | 
						|
    public string SelectedText { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// Rich text Comment
 | 
						|
    /// </summary>
 | 
						|
    public string? Comment { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// The number of characters selected
 | 
						|
    /// </summary>
 | 
						|
    public int HighlightCount { get; set; }
 | 
						|
    public int PageNumber { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// Selected Highlight Slot Index [0-4]
 | 
						|
    /// </summary>
 | 
						|
    public int SelectedSlotIndex { get; set; }
 | 
						|
    /// <summary>
 | 
						|
    /// A calculated selection of the surrounding text. This does not update after creation.
 | 
						|
    /// </summary>
 | 
						|
    public string? Context { get; set; }
 | 
						|
 | 
						|
    public bool ContainsSpoiler { get; set; }
 | 
						|
 | 
						|
     // TODO: Figure out a simple mechansim to track upvotes (hashmap of userids?)
 | 
						|
 | 
						|
     /// <summary>
 | 
						|
     /// Title of the TOC Chapter within Epub (not Chapter Entity)
 | 
						|
     /// </summary>
 | 
						|
     public string? ChapterTitle { get; set; }
 | 
						|
 | 
						|
    public required int LibraryId { get; set; }
 | 
						|
    public required int SeriesId { get; set; }
 | 
						|
    public required int VolumeId { get; set; }
 | 
						|
    public required int ChapterId { get; set; }
 | 
						|
    public Chapter Chapter { get; set; }
 | 
						|
 | 
						|
    public required int AppUserId { get; set; }
 | 
						|
    public AppUser AppUser { get; set; }
 | 
						|
 | 
						|
    public DateTime Created { get; set; }
 | 
						|
    public DateTime CreatedUtc { get; set; }
 | 
						|
    public DateTime LastModified { get; set; }
 | 
						|
    public DateTime LastModifiedUtc { get; set; }
 | 
						|
}
 |