From a5f75a2d1a71df9dd8c12aafefc2dda366214fc7 Mon Sep 17 00:00:00 2001 From: Patrick Barron Date: Tue, 1 Sep 2020 11:38:09 -0400 Subject: Rename Metadata to ItemMetadata --- Jellyfin.Data/Entities/Libraries/BookMetadata.cs | 2 +- .../Entities/Libraries/CompanyMetadata.cs | 2 +- .../Entities/Libraries/CustomItemMetadata.cs | 2 +- .../Entities/Libraries/EpisodeMetadata.cs | 2 +- Jellyfin.Data/Entities/Libraries/Genre.cs | 10 +- Jellyfin.Data/Entities/Libraries/ItemMetadata.cs | 167 +++++++++++++++++++++ Jellyfin.Data/Entities/Libraries/Metadata.cs | 167 --------------------- .../Entities/Libraries/MetadataProviderId.cs | 10 +- Jellyfin.Data/Entities/Libraries/MovieMetadata.cs | 2 +- .../Entities/Libraries/MusicAlbumMetadata.cs | 2 +- Jellyfin.Data/Entities/Libraries/PersonRole.cs | 10 +- Jellyfin.Data/Entities/Libraries/PhotoMetadata.cs | 2 +- Jellyfin.Data/Entities/Libraries/Rating.cs | 10 +- Jellyfin.Data/Entities/Libraries/SeasonMetadata.cs | 2 +- Jellyfin.Data/Entities/Libraries/SeriesMetadata.cs | 2 +- Jellyfin.Data/Entities/Libraries/TrackMetadata.cs | 2 +- 16 files changed, 197 insertions(+), 197 deletions(-) create mode 100644 Jellyfin.Data/Entities/Libraries/ItemMetadata.cs delete mode 100644 Jellyfin.Data/Entities/Libraries/Metadata.cs diff --git a/Jellyfin.Data/Entities/Libraries/BookMetadata.cs b/Jellyfin.Data/Entities/Libraries/BookMetadata.cs index 9c91b5e406..4a3d290f01 100644 --- a/Jellyfin.Data/Entities/Libraries/BookMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/BookMetadata.cs @@ -10,7 +10,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity containing metadata for a book. /// - public class BookMetadata : Metadata, IHasCompanies + public class BookMetadata : ItemMetadata, IHasCompanies { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/CompanyMetadata.cs b/Jellyfin.Data/Entities/Libraries/CompanyMetadata.cs index 60cc96a340..8aa0486afa 100644 --- a/Jellyfin.Data/Entities/Libraries/CompanyMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/CompanyMetadata.cs @@ -6,7 +6,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity holding metadata for a . /// - public class CompanyMetadata : Metadata + public class CompanyMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/CustomItemMetadata.cs b/Jellyfin.Data/Entities/Libraries/CustomItemMetadata.cs index bc18355281..f0daedfbe8 100644 --- a/Jellyfin.Data/Entities/Libraries/CustomItemMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/CustomItemMetadata.cs @@ -5,7 +5,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity containing metadata for a custom item. /// - public class CustomItemMetadata : Metadata + public class CustomItemMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/EpisodeMetadata.cs b/Jellyfin.Data/Entities/Libraries/EpisodeMetadata.cs index 348100cb4c..7efb840f0b 100644 --- a/Jellyfin.Data/Entities/Libraries/EpisodeMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/EpisodeMetadata.cs @@ -6,7 +6,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity containing metadata for an . /// - public class EpisodeMetadata : Metadata + public class EpisodeMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/Genre.cs b/Jellyfin.Data/Entities/Libraries/Genre.cs index aeedd7bfde..2a2dbd1a5d 100644 --- a/Jellyfin.Data/Entities/Libraries/Genre.cs +++ b/Jellyfin.Data/Entities/Libraries/Genre.cs @@ -14,8 +14,8 @@ namespace Jellyfin.Data.Entities.Libraries /// Initializes a new instance of the class. /// /// The name. - /// The metadata. - public Genre(string name, Metadata metadata) + /// The metadata. + public Genre(string name, ItemMetadata itemMetadata) { if (string.IsNullOrEmpty(name)) { @@ -24,12 +24,12 @@ namespace Jellyfin.Data.Entities.Libraries Name = name; - if (metadata == null) + if (itemMetadata == null) { - throw new ArgumentNullException(nameof(metadata)); + throw new ArgumentNullException(nameof(itemMetadata)); } - metadata.Genres.Add(this); + itemMetadata.Genres.Add(this); } /// diff --git a/Jellyfin.Data/Entities/Libraries/ItemMetadata.cs b/Jellyfin.Data/Entities/Libraries/ItemMetadata.cs new file mode 100644 index 0000000000..1d2dc0f669 --- /dev/null +++ b/Jellyfin.Data/Entities/Libraries/ItemMetadata.cs @@ -0,0 +1,167 @@ +#pragma warning disable CA2227 + +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 abstract class that holds metadata. + /// + public abstract class ItemMetadata : IHasArtwork, IHasConcurrencyToken + { + /// + /// Initializes a new instance of the class. + /// + /// The title or name of the object. + /// ISO-639-3 3-character language codes. + protected ItemMetadata(string title, string language) + { + if (string.IsNullOrEmpty(title)) + { + throw new ArgumentNullException(nameof(title)); + } + + if (string.IsNullOrEmpty(language)) + { + throw new ArgumentNullException(nameof(language)); + } + + Title = title; + Language = language; + DateAdded = DateTime.UtcNow; + DateModified = DateAdded; + + PersonRoles = new HashSet(); + Genres = new HashSet(); + Artwork = new HashSet(); + Ratings = new HashSet(); + Sources = new HashSet(); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Default constructor. Protected due to being abstract. + /// + protected ItemMetadata() + { + } + + /// + /// Gets or sets the id. + /// + /// + /// Identity, Indexed, Required. + /// + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; protected set; } + + /// + /// Gets or sets the title. + /// + /// + /// Required, Max length = 1024. + /// + [Required] + [MaxLength(1024)] + [StringLength(1024)] + public string Title { get; set; } + + /// + /// Gets or sets the original title. + /// + /// + /// Max length = 1024. + /// + [MaxLength(1024)] + [StringLength(1024)] + public string OriginalTitle { get; set; } + + /// + /// Gets or sets the sort title. + /// + /// + /// Max length = 1024. + /// + [MaxLength(1024)] + [StringLength(1024)] + public string SortTitle { get; set; } + + /// + /// Gets or sets the language. + /// + /// + /// Required, Min length = 3, Max length = 3. + /// ISO-639-3 3-character language codes. + /// + [Required] + [MinLength(3)] + [MaxLength(3)] + [StringLength(3)] + public string Language { get; set; } + + /// + /// Gets or sets the release date. + /// + public DateTimeOffset? ReleaseDate { get; set; } + + /// + /// Gets or sets the date added. + /// + /// + /// Required. + /// + public DateTime DateAdded { get; protected set; } + + /// + /// Gets or sets the date modified. + /// + /// + /// Required. + /// + public DateTime DateModified { get; set; } + + /// + /// Gets or sets the row version. + /// + /// + /// Required, ConcurrencyToken. + /// + [ConcurrencyCheck] + public uint RowVersion { get; set; } + + /// + /// Gets or sets a collection containing the person roles for this item. + /// + public virtual ICollection PersonRoles { get; protected set; } + + /// + /// Gets or sets a collection containing the generes for this item. + /// + public virtual ICollection Genres { get; protected set; } + + /// + public virtual ICollection Artwork { get; protected set; } + + /// + /// Gets or sets a collection containing the ratings for this item. + /// + public virtual ICollection Ratings { get; protected set; } + + /// + /// Gets or sets a collection containing the metadata sources for this item. + /// + public virtual ICollection Sources { get; protected set; } + + /// + public void OnSavingChanges() + { + RowVersion++; + } + } +} diff --git a/Jellyfin.Data/Entities/Libraries/Metadata.cs b/Jellyfin.Data/Entities/Libraries/Metadata.cs deleted file mode 100644 index 2fb619d7f4..0000000000 --- a/Jellyfin.Data/Entities/Libraries/Metadata.cs +++ /dev/null @@ -1,167 +0,0 @@ -#pragma warning disable CA2227 - -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 abstract class that holds metadata. - /// - public abstract class Metadata : IHasArtwork, IHasConcurrencyToken - { - /// - /// Initializes a new instance of the class. - /// - /// The title or name of the object. - /// ISO-639-3 3-character language codes. - protected Metadata(string title, string language) - { - if (string.IsNullOrEmpty(title)) - { - throw new ArgumentNullException(nameof(title)); - } - - if (string.IsNullOrEmpty(language)) - { - throw new ArgumentNullException(nameof(language)); - } - - Title = title; - Language = language; - DateAdded = DateTime.UtcNow; - DateModified = DateAdded; - - PersonRoles = new HashSet(); - Genres = new HashSet(); - Artwork = new HashSet(); - Ratings = new HashSet(); - Sources = new HashSet(); - } - - /// - /// Initializes a new instance of the class. - /// - /// - /// Default constructor. Protected due to being abstract. - /// - protected Metadata() - { - } - - /// - /// Gets or sets the id. - /// - /// - /// Identity, Indexed, Required. - /// - [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - public int Id { get; protected set; } - - /// - /// Gets or sets the title. - /// - /// - /// Required, Max length = 1024. - /// - [Required] - [MaxLength(1024)] - [StringLength(1024)] - public string Title { get; set; } - - /// - /// Gets or sets the original title. - /// - /// - /// Max length = 1024. - /// - [MaxLength(1024)] - [StringLength(1024)] - public string OriginalTitle { get; set; } - - /// - /// Gets or sets the sort title. - /// - /// - /// Max length = 1024. - /// - [MaxLength(1024)] - [StringLength(1024)] - public string SortTitle { get; set; } - - /// - /// Gets or sets the language. - /// - /// - /// Required, Min length = 3, Max length = 3. - /// ISO-639-3 3-character language codes. - /// - [Required] - [MinLength(3)] - [MaxLength(3)] - [StringLength(3)] - public string Language { get; set; } - - /// - /// Gets or sets the release date. - /// - public DateTimeOffset? ReleaseDate { get; set; } - - /// - /// Gets or sets the date added. - /// - /// - /// Required. - /// - public DateTime DateAdded { get; protected set; } - - /// - /// Gets or sets the date modified. - /// - /// - /// Required. - /// - public DateTime DateModified { get; set; } - - /// - /// Gets or sets the row version. - /// - /// - /// Required, ConcurrencyToken. - /// - [ConcurrencyCheck] - public uint RowVersion { get; set; } - - /// - /// Gets or sets a collection containing the person roles for this item. - /// - public virtual ICollection PersonRoles { get; protected set; } - - /// - /// Gets or sets a collection containing the generes for this item. - /// - public virtual ICollection Genres { get; protected set; } - - /// - public virtual ICollection Artwork { get; protected set; } - - /// - /// Gets or sets a collection containing the ratings for this item. - /// - public virtual ICollection Ratings { get; protected set; } - - /// - /// Gets or sets a collection containing the metadata sources for this item. - /// - public virtual ICollection Sources { get; protected set; } - - /// - public void OnSavingChanges() - { - RowVersion++; - } - } -} diff --git a/Jellyfin.Data/Entities/Libraries/MetadataProviderId.cs b/Jellyfin.Data/Entities/Libraries/MetadataProviderId.cs index 6e6de598e8..fcfb35bfac 100644 --- a/Jellyfin.Data/Entities/Libraries/MetadataProviderId.cs +++ b/Jellyfin.Data/Entities/Libraries/MetadataProviderId.cs @@ -14,8 +14,8 @@ namespace Jellyfin.Data.Entities.Libraries /// Initializes a new instance of the class. /// /// The provider id. - /// The metadata entity. - public MetadataProviderId(string providerId, Metadata metadata) + /// The metadata entity. + public MetadataProviderId(string providerId, ItemMetadata itemMetadata) { if (string.IsNullOrEmpty(providerId)) { @@ -24,12 +24,12 @@ namespace Jellyfin.Data.Entities.Libraries ProviderId = providerId; - if (metadata == null) + if (itemMetadata == null) { - throw new ArgumentNullException(nameof(metadata)); + throw new ArgumentNullException(nameof(itemMetadata)); } - metadata.Sources.Add(this); + itemMetadata.Sources.Add(this); } /// diff --git a/Jellyfin.Data/Entities/Libraries/MovieMetadata.cs b/Jellyfin.Data/Entities/Libraries/MovieMetadata.cs index 0e79f08420..aa1501a5cc 100644 --- a/Jellyfin.Data/Entities/Libraries/MovieMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/MovieMetadata.cs @@ -10,7 +10,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity holding the metadata for a movie. /// - public class MovieMetadata : Metadata, IHasCompanies + public class MovieMetadata : ItemMetadata, IHasCompanies { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/MusicAlbumMetadata.cs b/Jellyfin.Data/Entities/Libraries/MusicAlbumMetadata.cs index e64873a206..05c0b0374b 100644 --- a/Jellyfin.Data/Entities/Libraries/MusicAlbumMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/MusicAlbumMetadata.cs @@ -8,7 +8,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity holding the metadata for a music album. /// - public class MusicAlbumMetadata : Metadata + public class MusicAlbumMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/PersonRole.cs b/Jellyfin.Data/Entities/Libraries/PersonRole.cs index 54e88a75c4..cd38ee83d0 100644 --- a/Jellyfin.Data/Entities/Libraries/PersonRole.cs +++ b/Jellyfin.Data/Entities/Libraries/PersonRole.cs @@ -18,17 +18,17 @@ namespace Jellyfin.Data.Entities.Libraries /// Initializes a new instance of the class. /// /// The role type. - /// The metadata. - public PersonRole(PersonRoleType type, Metadata metadata) + /// The metadata. + public PersonRole(PersonRoleType type, ItemMetadata itemMetadata) { Type = type; - if (metadata == null) + if (itemMetadata == null) { - throw new ArgumentNullException(nameof(metadata)); + throw new ArgumentNullException(nameof(itemMetadata)); } - metadata.PersonRoles.Add(this); + itemMetadata.PersonRoles.Add(this); Sources = new HashSet(); } diff --git a/Jellyfin.Data/Entities/Libraries/PhotoMetadata.cs b/Jellyfin.Data/Entities/Libraries/PhotoMetadata.cs index 1ef9dd5f9c..ffc790b574 100644 --- a/Jellyfin.Data/Entities/Libraries/PhotoMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/PhotoMetadata.cs @@ -5,7 +5,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity that holds metadata for a photo. /// - public class PhotoMetadata : Metadata + public class PhotoMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/Rating.cs b/Jellyfin.Data/Entities/Libraries/Rating.cs index ba054a39e0..98226cd802 100644 --- a/Jellyfin.Data/Entities/Libraries/Rating.cs +++ b/Jellyfin.Data/Entities/Libraries/Rating.cs @@ -14,17 +14,17 @@ namespace Jellyfin.Data.Entities.Libraries /// Initializes a new instance of the class. /// /// The value. - /// The metadata. - public Rating(double value, Metadata metadata) + /// The metadata. + public Rating(double value, ItemMetadata itemMetadata) { Value = value; - if (metadata == null) + if (itemMetadata == null) { - throw new ArgumentNullException(nameof(metadata)); + throw new ArgumentNullException(nameof(itemMetadata)); } - metadata.Ratings.Add(this); + itemMetadata.Ratings.Add(this); } /// diff --git a/Jellyfin.Data/Entities/Libraries/SeasonMetadata.cs b/Jellyfin.Data/Entities/Libraries/SeasonMetadata.cs index eedeb089e8..7ce79756b2 100644 --- a/Jellyfin.Data/Entities/Libraries/SeasonMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/SeasonMetadata.cs @@ -6,7 +6,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity that holds metadata for seasons. /// - public class SeasonMetadata : Metadata + public class SeasonMetadata : ItemMetadata { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/SeriesMetadata.cs b/Jellyfin.Data/Entities/Libraries/SeriesMetadata.cs index 3889a154b5..877dbfc69c 100644 --- a/Jellyfin.Data/Entities/Libraries/SeriesMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/SeriesMetadata.cs @@ -11,7 +11,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity representing series metadata. /// - public class SeriesMetadata : Metadata, IHasCompanies + public class SeriesMetadata : ItemMetadata, IHasCompanies { /// /// Initializes a new instance of the class. diff --git a/Jellyfin.Data/Entities/Libraries/TrackMetadata.cs b/Jellyfin.Data/Entities/Libraries/TrackMetadata.cs index 048068a1a3..321f93bf2e 100644 --- a/Jellyfin.Data/Entities/Libraries/TrackMetadata.cs +++ b/Jellyfin.Data/Entities/Libraries/TrackMetadata.cs @@ -5,7 +5,7 @@ namespace Jellyfin.Data.Entities.Libraries /// /// An entity holding metadata for a track. /// - public class TrackMetadata : Metadata + public class TrackMetadata : ItemMetadata { /// /// Initializes a new instance of the class. -- cgit v1.2.3