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;
}