2024-09-20 23:37:55 +02:00
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
|
using System.Text.Json.Serialization;
|
2024-10-02 16:09:11 +02:00
|
|
|
using WatchIt.Database.Model.Person;
|
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")]
|
2024-10-02 01:08:52 +02:00
|
|
|
public required decimal 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]
|
2024-11-01 20:44:01 +01:00
|
|
|
internal RatingResponse(long ratingSum, long ratingCount)
|
2024-09-20 23:37:55 +02:00
|
|
|
{
|
2024-10-02 16:09:11 +02:00
|
|
|
Average = ratingCount > 0 ? (decimal)ratingSum / ratingCount : 0;
|
2024-09-29 23:00:32 +02:00
|
|
|
Count = ratingCount;
|
2024-09-20 23:37:55 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|