// Kyoo - A portable and vast media library solution.
// Copyright (c) Kyoo.
//
// See AUTHORS.md and LICENSE file in the project root for full license information.
//
// Kyoo is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// Kyoo is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Kyoo. If not, see .
using System;
using System.Collections.Generic;
using Kyoo.Abstractions.Models.Attributes;
namespace Kyoo.Abstractions.Models
{
///
/// A class representing collections of .
/// A collection can also be stored in a .
///
public class Collection : IResource, IMetadata, IThumbnails
{
///
public int ID { get; set; }
///
public string Slug { get; set; }
///
/// The name of this collection.
///
public string Name { get; set; }
///
public Dictionary Images { get; set; }
///
/// The path of this poster.
/// By default, the http path for this poster is returned from the public API.
/// This can be disabled using the internal query flag.
///
[SerializeAs("{HOST}/api/collection/{Slug}/poster")]
[Obsolete("Use Images instead of this, this is only kept for the API response.")]
public string Poster => Images?.GetValueOrDefault(Models.Images.Poster);
///
/// The description of this collection.
///
public string Overview { get; set; }
///
/// The list of shows contained in this collection.
///
[LoadableRelation] public ICollection Shows { get; set; }
///
/// The list of libraries that contains this collection.
///
[LoadableRelation] public ICollection Libraries { get; set; }
///
[EditableRelation] [LoadableRelation] public ICollection ExternalIDs { get; set; }
}
}