Kavita/API/Helpers/Builders/RatingBuilder.cs
Amelia 052b3f9fe4
Ingest ExternalReviews from K+
Adds a new entity ExternalChapterMetadata, which would allow us to
extend chapters to Recommendations, Ratings, etc in the future
2025-04-28 16:19:03 +02:00

47 lines
1 KiB
C#

#nullable enable
using System;
using API.Entities;
namespace API.Helpers.Builders;
public class RatingBuilder : IEntityBuilder<AppUserRating>
{
private readonly AppUserRating _rating;
public AppUserRating Build() => _rating;
public RatingBuilder(AppUserRating? rating = null)
{
_rating = rating ?? new AppUserRating();
}
public RatingBuilder WithSeriesId(int seriesId)
{
_rating.SeriesId = seriesId;
return this;
}
public RatingBuilder WithChapterId(int? chapterId)
{
_rating.ChapterId = chapterId;
return this;
}
public RatingBuilder WithRating(int rating)
{
_rating.Rating = Math.Clamp(rating, 0, 5);
return this;
}
public RatingBuilder WithTagline(string? tagline)
{
if (string.IsNullOrEmpty(tagline)) return this;
_rating.Tagline = tagline;
return this;
}
public RatingBuilder WithBody(string body)
{
_rating.Review = body;
return this;
}
}