using System.Diagnostics.CodeAnalysis;

namespace ErsatzTV.Core.Domain;

[SuppressMessage("Naming", "CA1711:Identifiers should not have incorrect suffix")]
public class MultiCollection : IVersionedAggregate
{
    public int Id { get; set; }
    public int Version { get; set; }
    public string Name { get; set; }
    public List<Collection> Collections { get; set; }
    public List<SmartCollection> SmartCollections { get; set; }
    public List<MultiCollectionItem> MultiCollectionItems { get; set; }
    public List<MultiCollectionSmartItem> MultiCollectionSmartItems { get; set; }

    /// <summary>
    ///     When non-null, this multi collection is a system-owned artifact created for an auto-tune weighted
    ///     channel (#425): its members are the per-content-source SmartCollections that carry the rotation
    ///     weights. Hidden from the user-facing collection lists and deleted when the channel is deleted.
    ///     Null for every user-created multi collection.
    /// </summary>
    public int? OwnedByChannelId { get; set; }
}
