using System.Collections.Generic;
using API.Entities.Enums;
using API.Services.Plus;
namespace API.Entities.Metadata;
/// 
/// Represents an Externally supplied Review for a given Series
/// 
public class ExternalReview
{
    public int Id { get; set; }
    public string Tagline { get; set; }
    public required string Body { get; set; }
    /// 
    /// Pure text version of the body
    /// 
    public required string BodyJustText { get; set; }
    /// 
    /// Raw from the provider. Usually Markdown
    /// 
    public string RawBody { get; set; }
    public required ScrobbleProvider Provider { get; set; }
    public RatingAuthority Authority { get; set; } = RatingAuthority.User;
    public string SiteUrl { get; set; }
    /// 
    /// Reviewer's username
    /// 
    public string Username { get; set; }
    /// 
    /// An Optional Rating coming from the Review
    /// 
    public int Rating { get; set; } = 0;
    /// 
    /// The media's overall Score
    /// 
    public int Score { get; set; }
    public int TotalVotes { get; set; }
    public int SeriesId { get; set; }
    public int? ChapterId { get; set; }
    // Relationships
    public ICollection ExternalSeriesMetadatas { get; set; } = null!;
}