MyBookmark/Modules.Library.Domain/Entities/MediaContent/CommonProperties/GenreProportion.cs
2024-09-23 03:00:50 +03:00

40 lines
1020 B
C#

namespace Modules.Library.Domain.Entities.MediaContent.CommonProperties;
public class GenreProportion : ValueObject
{
public decimal? Proportion { get; private set; }
[Required]
public Guid GenreId { get; init; } = default!;
private GenreProportion() { }
internal GenreProportion(Guid genreId, decimal? proportion)
{
GenreId = genreId;
Proportion = proportion;
}
internal static GenreProportion New(Models.GenreProportion genreProportion) => new()
{
GenreId = genreProportion.GenreId,
Proportion = genreProportion.Proportion,
};
public static GenreProportion NewForComparison(Guid genreId, decimal? proportion) => new()
{
GenreId = genreId,
Proportion = proportion,
};
public void SetProportion(decimal? proportion)
{
Proportion = proportion;
}
protected override IEnumerable<object?> GetEqualityComponents()
{
yield return GenreId;
yield return Proportion;
}
}