using API.Entities; using API.Entities.Enums; using API.Services.Plus; namespace API.DTOs.SeriesDetail; #nullable enable /// /// Represents a User Review for a given Series /// /// The user does not need to be a Kavita user public sealed record UserReviewDto { /// /// A tagline for the review /// /// This is not possible to set as a local user public string? Tagline { get; set; } /// /// The main review /// public string Body { get; set; } /// /// The main body with just text, for review preview /// public string? BodyJustText { get; set; } /// /// The series this is for /// public int SeriesId { get; set; } public int? ChapterId { get; set; } /// /// The library this series belongs in /// public int LibraryId { get; set; } /// /// The user who wrote this /// public string Username { get; set; } public int TotalVotes { get; set; } public float Rating { get; set; } public string? RawBody { get; set; } /// /// How many upvotes this review has gotten /// /// More upvotes get loaded first public int Score { get; set; } = 0; /// /// If External, the url of the review /// public string? SiteUrl { get; set; } /// /// Does this review come from an external Source /// public bool IsExternal { get; set; } /// /// If this review is External, which Provider did it come from /// public ScrobbleProvider Provider { get; set; } = ScrobbleProvider.Kavita; /// /// Source of the Rating /// public RatingAuthority Authority { get; set; } = RatingAuthority.User; }