Chapter/Issue level Reviews and Ratings (#3778)

Co-authored-by: Joseph Milazzo <josephmajora@gmail.com>
This commit is contained in:
Fesaa 2025-04-29 18:53:24 +02:00 committed by GitHub
parent 3b8997e46e
commit 4f7625ea77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
60 changed files with 5097 additions and 497 deletions

View file

@ -0,0 +1,14 @@
#nullable enable
using System.Collections.Generic;
using API.DTOs.SeriesDetail;
namespace API.DTOs;
public class ChapterDetailPlusDto
{
public float Rating { get; set; }
public bool HasBeenRated { get; set; }
public IList<UserReviewDto> Reviews { get; set; } = [];
public IList<RatingDto> Ratings { get; set; } = [];
}

View file

@ -1,4 +1,5 @@
using API.Services.Plus;
using API.Entities.Enums;
using API.Services.Plus;
namespace API.DTOs;
#nullable enable
@ -8,5 +9,6 @@ public class RatingDto
public int AverageScore { get; set; }
public int FavoriteCount { get; set; }
public ScrobbleProvider Provider { get; set; }
public RatingAuthority Authority { get; set; } = RatingAuthority.User;
public string? ProviderUrl { get; set; }
}

View file

@ -1,10 +1,10 @@
using System.ComponentModel.DataAnnotations;

namespace API.DTOs.SeriesDetail;
#nullable enable
public class UpdateUserReviewDto
{
public int SeriesId { get; set; }
public int? ChapterId { get; set; }
public string Body { get; set; }
}

View file

@ -1,4 +1,6 @@
using API.Services.Plus;
using API.Entities;
using API.Entities.Enums;
using API.Services.Plus;
namespace API.DTOs.SeriesDetail;
#nullable enable
@ -26,6 +28,7 @@ public class UserReviewDto
/// The series this is for
/// </summary>
public int SeriesId { get; set; }
public int? ChapterId { get; set; }
/// <summary>
/// The library this series belongs in
/// </summary>
@ -54,4 +57,8 @@ public class UserReviewDto
/// If this review is External, which Provider did it come from
/// </summary>
public ScrobbleProvider Provider { get; set; } = ScrobbleProvider.Kavita;
/// <summary>
/// Source of the Rating
/// </summary>
public RatingAuthority Authority { get; set; } = RatingAuthority.User;
}

View file

@ -1,7 +1,8 @@
namespace API.DTOs;
public class UpdateSeriesRatingDto
public class UpdateRatingDto
{
public int SeriesId { get; init; }
public int? ChapterId { get; init; }
public float UserRating { get; init; }
}