Files
WatchIt/WatchIt.Common/WatchIt.Common.Model/Rating/RatingResponse.cs

37 lines
858 B
C#
Raw Normal View History

2024-09-20 23:37:55 +02:00
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
2024-09-29 23:00:32 +02:00
using WatchIt.Database.Model.Rating;
2024-09-20 23:37:55 +02:00
2024-09-28 02:36:53 +02:00
namespace WatchIt.Common.Model.Rating;
2024-09-20 23:37:55 +02:00
2024-09-28 02:36:53 +02:00
public class RatingResponse
2024-09-20 23:37:55 +02:00
{
#region PROPERTIES
2024-09-29 23:00:32 +02:00
[JsonPropertyName("average")]
public required double Average { get; set; }
2024-09-20 23:37:55 +02:00
2024-09-29 23:00:32 +02:00
[JsonPropertyName("count")]
public required long Count { get; set; }
2024-09-20 23:37:55 +02:00
#endregion
#region CONSTRUCTORS
[JsonConstructor]
2024-09-28 02:36:53 +02:00
public RatingResponse() {}
2024-09-29 23:00:32 +02:00
[SetsRequiredMembers]
public RatingResponse(IEnumerable<RatingMedia> ratingMedia) : this(ratingMedia.Any() ? ratingMedia.Average(x => x.Rating) : 0, ratingMedia.Count()) {}
2024-09-20 23:37:55 +02:00
[SetsRequiredMembers]
2024-09-28 02:36:53 +02:00
public RatingResponse(double ratingAverage, long ratingCount)
2024-09-20 23:37:55 +02:00
{
2024-09-29 23:00:32 +02:00
Average = ratingAverage;
Count = ratingCount;
2024-09-20 23:37:55 +02:00
}
#endregion
}