mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-09 17:28:48 +01:00
Moved Database projects under /src
removed old pgsql references
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Jellyfin.Data.Interfaces;
|
||||
|
||||
namespace Jellyfin.Data.Entities.Libraries
|
||||
{
|
||||
/// <summary>
|
||||
/// An abstract class that holds metadata.
|
||||
/// </summary>
|
||||
public abstract class ItemMetadata : IHasArtwork, IHasConcurrencyToken
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ItemMetadata"/> class.
|
||||
/// </summary>
|
||||
/// <param name="title">The title or name of the object.</param>
|
||||
/// <param name="language">ISO-639-3 3-character language codes.</param>
|
||||
protected ItemMetadata(string title, string language)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrEmpty(title);
|
||||
ArgumentException.ThrowIfNullOrEmpty(language);
|
||||
|
||||
Title = title;
|
||||
Language = language;
|
||||
DateAdded = DateTime.UtcNow;
|
||||
DateModified = DateAdded;
|
||||
|
||||
PersonRoles = new HashSet<PersonRole>();
|
||||
Genres = new HashSet<Genre>();
|
||||
Artwork = new HashSet<Artwork>();
|
||||
Ratings = new HashSet<Rating>();
|
||||
Sources = new HashSet<MetadataProviderId>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the id.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Identity, Indexed, Required.
|
||||
/// </remarks>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the title.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Required, Max length = 1024.
|
||||
/// </remarks>
|
||||
[MaxLength(1024)]
|
||||
[StringLength(1024)]
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the original title.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Max length = 1024.
|
||||
/// </remarks>
|
||||
[MaxLength(1024)]
|
||||
[StringLength(1024)]
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the sort title.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Max length = 1024.
|
||||
/// </remarks>
|
||||
[MaxLength(1024)]
|
||||
[StringLength(1024)]
|
||||
public string? SortTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the language.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Required, Min length = 3, Max length = 3.
|
||||
/// ISO-639-3 3-character language codes.
|
||||
/// </remarks>
|
||||
[MinLength(3)]
|
||||
[MaxLength(3)]
|
||||
[StringLength(3)]
|
||||
public string Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the release date.
|
||||
/// </summary>
|
||||
public DateTimeOffset? ReleaseDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the date added.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Required.
|
||||
/// </remarks>
|
||||
public DateTime DateAdded { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the date modified.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Required.
|
||||
/// </remarks>
|
||||
public DateTime DateModified { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
[ConcurrencyCheck]
|
||||
public uint RowVersion { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection containing the person roles for this item.
|
||||
/// </summary>
|
||||
public virtual ICollection<PersonRole> PersonRoles { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection containing the genres for this item.
|
||||
/// </summary>
|
||||
public virtual ICollection<Genre> Genres { get; private set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public virtual ICollection<Artwork> Artwork { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection containing the ratings for this item.
|
||||
/// </summary>
|
||||
public virtual ICollection<Rating> Ratings { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a collection containing the metadata sources for this item.
|
||||
/// </summary>
|
||||
public virtual ICollection<MetadataProviderId> Sources { get; private set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public void OnSavingChanges()
|
||||
{
|
||||
RowVersion++;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user