namespace MediaBrowser.Model.Providers
{
    /// 
    /// Represents the external id information for serialization to the client.
    /// 
    public class ExternalIdInfo
    {
        /// 
        /// Initializes a new instance of the  class.
        /// 
        /// Name of the external id provider (IE: IMDB, MusicBrainz, etc).
        /// Key for this id. This key should be unique across all providers.
        /// Specific media type for this id.
        public ExternalIdInfo(string name, string key, ExternalIdMediaType? type)
        {
            Name = name;
            Key = key;
            Type = type;
        }
        /// 
        /// Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc).
        /// 
        // TODO: This should be renamed to ProviderName
        public string Name { get; set; }
        /// 
        /// Gets or sets the unique key for this id. This key should be unique across all providers.
        /// 
        // TODO: This property is not actually unique across the concrete types at the moment. It should be updated to be unique.
        public string Key { get; set; }
        /// 
        /// Gets or sets the specific media type for this id. This is used to distinguish between the different
        /// external id types for providers with multiple ids.
        /// A null value indicates there is no specific media type associated with the external id, or this is the
        /// default id for the external provider so there is no need to specify a type.
        /// 
        /// 
        /// This can be used along with the  to localize the external id on the client.
        /// 
        public ExternalIdMediaType? Type { get; set; }
    }
}