using System; using API.Entities.Enums; using API.Entities.Interfaces; using API.Services.Plus; namespace API.DTOs.Collection; #nullable enable public class AppUserCollectionDto : IHasCoverImage { public int Id { get; init; } public string Title { get; set; } = default!; public string Summary { get; set; } = default!; public bool Promoted { get; set; } public AgeRating AgeRating { get; set; } /// /// This is used to tell the UI if it should request a Cover Image or not. If null or empty, it has not been set. /// public string? CoverImage { get; set; } = string.Empty; public string PrimaryColor { get; set; } = string.Empty; public string SecondaryColor { get; set; } = string.Empty; public bool CoverImageLocked { get; set; } /// /// Owner of the Collection /// public string? Owner { get; set; } /// /// Last time Kavita Synced the Collection with an upstream source (for non Kavita sourced collections) /// public DateTime LastSyncUtc { get; set; } /// /// Who created/manages the list. Non-Kavita lists are not editable by the user, except to promote /// public ScrobbleProvider Source { get; set; } = ScrobbleProvider.Kavita; /// /// For Non-Kavita sourced collections, the url to sync from /// public string? SourceUrl { get; set; } /// /// Total number of items as of the last sync. Not applicable for Kavita managed collections. /// public int TotalSourceCount { get; set; } /// /// A
separated string of all missing series ///
public string? MissingSeriesFromSource { get; set; } public void ResetColorScape() { PrimaryColor = string.Empty; SecondaryColor = string.Empty; } }