using System; using System.Collections.Generic; using Microsoft.EntityFrameworkCore; namespace API.Entities.Progress; #nullable enable public class AppUserReadingSessionActivityData { public int Id { get; set; } public int AppUserReadingSessionId { get; set; } public AppUserReadingSession ReadingSession { get; set; } public int ChapterId { get; set; } public virtual Chapter Chapter { get; set; } public int VolumeId { get; set; } public int SeriesId { get; set; } public virtual Series Series { get; set; } public int LibraryId { get; set; } public int StartPage { get; set; } public int EndPage { get; set; } public string? StartBookScrollId { get; set; } public string? EndBookScrollId { get; set; } public DateTime StartTime { get; set; } public DateTime StartTimeUtc { get; set; } public DateTime? EndTime { get; set; } public DateTime? EndTimeUtc { get; set; } public int PagesRead { get; set; } /// /// Only applicable for Book entries /// public int WordsRead { get; set; } /// /// Total Pages at the time of reading /// /// This can skew over time when files are updated/replaced public int TotalPages { get; set; } /// /// Total Words at the time of reading /// /// This can skew over time when files are updated/replaced public long TotalWords { get; set; } /// /// Client information for this reading activity. /// Tracks device, browser, and authentication details. /// public ClientInfoData? ClientInfo { get; set; } /// /// List of device PKs that connected during this reading session /// /// JSON Column public List DeviceIds { get; set; } = []; }