namespace TeleWave.Domain.Library;

/// <summary>Шоу в составе коллекции. Порядок показа — по <see cref="Position"/>.</summary>
public class CollectionItem
{
    public Guid Id { get; private set; }
    public Guid CollectionId { get; private set; }
    public Guid ShowId { get; private set; }

    /// <summary>Порядковый номер внутри коллекции (может иметь разрывы после удалений).</summary>
    public int Position { get; private set; }

    private CollectionItem() { }

    internal static CollectionItem Create(Guid collectionId, Guid showId, int position) =>
        new()
        {
            Id = Guid.NewGuid(),
            CollectionId = collectionId,
            ShowId = showId,
            Position = position,
        };

    internal void SetPosition(int position) => Position = position;
}
