using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Jellyfin.Data.Interfaces;
namespace Jellyfin.Data.Entities.Libraries
{
///
/// An entity representing series metadata.
///
public class SeriesMetadata : Metadata, IHasCompanies
{
///
/// Initializes a new instance of the class.
///
/// The title or name of the object.
/// ISO-639-3 3-character language codes.
/// The series.
public SeriesMetadata(string title, string language, Series series) : base(title, language)
{
if (series == null)
{
throw new ArgumentNullException(nameof(series));
}
series.SeriesMetadata.Add(this);
Networks = new HashSet();
}
///
/// Initializes a new instance of the class.
///
///
/// Default constructor. Protected due to required properties, but present because EF needs it.
///
protected SeriesMetadata()
{
}
///
/// Gets or sets the outline.
///
///
/// Max length = 1024.
///
[MaxLength(1024)]
[StringLength(1024)]
public string Outline { get; set; }
///
/// Gets or sets the plot.
///
///
/// Max length = 65535.
///
[MaxLength(65535)]
[StringLength(65535)]
public string Plot { get; set; }
///
/// Gets or sets the tagline.
///
///
/// Max length = 1024.
///
[MaxLength(1024)]
[StringLength(1024)]
public string Tagline { get; set; }
///
/// Gets or sets the country code.
///
///
/// Max length = 2.
///
[MaxLength(2)]
[StringLength(2)]
public string Country { get; set; }
///
/// Gets or sets a collection containing the networks.
///
public virtual ICollection Networks { get; protected set; }
///
[NotMapped]
public ICollection Companies => Networks;
}
}