#pragma warning disable CS1591
//
using System;
using Jellyfin.Server.Implementations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace Jellyfin.Server.Implementations.Migrations
{
[DbContext(typeof(JellyfinDb))]
[Migration("20200430215054_InitialSchema")]
partial class InitialSchema
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("jellyfin")
.HasAnnotation("ProductVersion", "3.1.3");
modelBuilder.Entity("Jellyfin.Data.Entities.ActivityLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DateCreated")
.HasColumnType("TEXT");
b.Property("ItemId")
.HasColumnType("TEXT")
.HasMaxLength(256);
b.Property("LogSeverity")
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(512);
b.Property("Overview")
.HasColumnType("TEXT")
.HasMaxLength(512);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("ShortOverview")
.HasColumnType("TEXT")
.HasMaxLength(512);
b.Property("Type")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(256);
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("ActivityLog");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Artwork", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("Path")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("PersonRole_PersonRoles_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Kind");
b.HasIndex("PersonRole_PersonRoles_Id");
b.ToTable("Artwork");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Chapter", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Chapter_Chapters_Id")
.HasColumnType("INTEGER");
b.Property("Language")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(3);
b.Property("Name")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("TimeEnd")
.HasColumnType("INTEGER");
b.Property("TimeStart")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Chapter_Chapters_Id");
b.ToTable("Chapter");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Collection", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Name")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.ToTable("Collection");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CollectionItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CollectionItem_CollectionItem_Id")
.HasColumnType("INTEGER");
b.Property("CollectionItem_Next_Id")
.HasColumnType("INTEGER");
b.Property("CollectionItem_Previous_Id")
.HasColumnType("INTEGER");
b.Property("LibraryItem_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CollectionItem_CollectionItem_Id");
b.HasIndex("CollectionItem_Next_Id");
b.HasIndex("CollectionItem_Previous_Id");
b.HasIndex("LibraryItem_Id");
b.ToTable("CollectionItem");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Company", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Company_Labels_Id")
.HasColumnType("INTEGER");
b.Property("Company_Networks_Id")
.HasColumnType("INTEGER");
b.Property("Company_Parent_Id")
.HasColumnType("INTEGER");
b.Property("Company_Publishers_Id")
.HasColumnType("INTEGER");
b.Property("Company_Studios_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Company_Labels_Id");
b.HasIndex("Company_Networks_Id");
b.HasIndex("Company_Parent_Id");
b.HasIndex("Company_Publishers_Id");
b.HasIndex("Company_Studios_Id");
b.ToTable("Company");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Genre", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("PersonRole_PersonRoles_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.HasIndex("PersonRole_PersonRoles_Id");
b.ToTable("Genre");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Group", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Group_Groups_Id")
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Group_Groups_Id");
b.ToTable("Group");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Library", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.ToTable("Library");
});
modelBuilder.Entity("Jellyfin.Data.Entities.LibraryItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DateAdded")
.HasColumnType("TEXT");
b.Property("Discriminator")
.IsRequired()
.HasColumnType("TEXT");
b.Property("LibraryRoot_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("UrlId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("LibraryRoot_Id");
b.HasIndex("UrlId")
.IsUnique();
b.ToTable("LibraryItem");
b.HasDiscriminator("Discriminator").HasValue("LibraryItem");
});
modelBuilder.Entity("Jellyfin.Data.Entities.LibraryRoot", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Library_Id")
.HasColumnType("INTEGER");
b.Property("NetworkPath")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("Path")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Library_Id");
b.ToTable("LibraryRoot");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MediaFile", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("MediaFile_MediaFiles_Id")
.HasColumnType("INTEGER");
b.Property("Path")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("MediaFile_MediaFiles_Id");
b.ToTable("MediaFile");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MediaFileStream", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("MediaFileStream_MediaFileStreams_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("StreamNumber")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("MediaFileStream_MediaFileStreams_Id");
b.ToTable("MediaFileStream");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Metadata", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DateAdded")
.HasColumnType("TEXT");
b.Property("DateModified")
.HasColumnType("TEXT");
b.Property("Discriminator")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Language")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(3);
b.Property("OriginalTitle")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("ReleaseDate")
.HasColumnType("TEXT");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("SortTitle")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("Title")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.HasKey("Id");
b.ToTable("Metadata");
b.HasDiscriminator("Discriminator").HasValue("Metadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MetadataProvider", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.ToTable("MetadataProvider");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MetadataProviderId", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("MetadataProviderId_Sources_Id")
.HasColumnType("INTEGER");
b.Property("MetadataProvider_Id")
.HasColumnType("INTEGER");
b.Property("PersonRole_PersonRoles_Id")
.HasColumnType("INTEGER");
b.Property("ProviderId")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("MetadataProviderId_Sources_Id");
b.HasIndex("MetadataProvider_Id");
b.HasIndex("PersonRole_PersonRoles_Id");
b.ToTable("MetadataProviderId");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("Permission_GroupPermissions_Id")
.HasColumnType("INTEGER");
b.Property("Permission_Permissions_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("Value")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Permission_GroupPermissions_Id");
b.HasIndex("Permission_Permissions_Id");
b.ToTable("Permission");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Person", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DateAdded")
.HasColumnType("TEXT");
b.Property("DateModified")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("SourceId")
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("UrlId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Person");
});
modelBuilder.Entity("Jellyfin.Data.Entities.PersonRole", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Artwork_Artwork_Id")
.HasColumnType("INTEGER");
b.Property("PersonRole_PersonRoles_Id")
.HasColumnType("INTEGER");
b.Property("Person_Id")
.HasColumnType("INTEGER");
b.Property("Role")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("Type")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Artwork_Artwork_Id");
b.HasIndex("PersonRole_PersonRoles_Id");
b.HasIndex("Person_Id");
b.ToTable("PersonRole");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("Preference_Preferences_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("Value")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.HasKey("Id");
b.HasIndex("Preference_Preferences_Id");
b.ToTable("Preference");
});
modelBuilder.Entity("Jellyfin.Data.Entities.ProviderMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("ProviderData")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("ProviderMapping_ProviderMappings_Id")
.HasColumnType("INTEGER");
b.Property("ProviderName")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("ProviderSecrets")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("ProviderMapping_ProviderMappings_Id");
b.ToTable("ProviderMapping");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Rating", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("PersonRole_PersonRoles_Id")
.HasColumnType("INTEGER");
b.Property("RatingSource_RatingType_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("Value")
.HasColumnType("REAL");
b.Property("Votes")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("PersonRole_PersonRoles_Id");
b.HasIndex("RatingSource_RatingType_Id");
b.ToTable("Rating");
});
modelBuilder.Entity("Jellyfin.Data.Entities.RatingSource", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("MaximumValue")
.HasColumnType("REAL");
b.Property("MetadataProviderId_Source_Id")
.HasColumnType("INTEGER");
b.Property("MinimumValue")
.HasColumnType("REAL");
b.Property("Name")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("MetadataProviderId_Source_Id");
b.ToTable("RatingSource");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Release", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("Release_Releases_Id")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("Release_Releases_Id");
b.ToTable("Release");
});
modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AudioLanguagePreference")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("AuthenticationProviderId")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("DisplayCollectionsView")
.HasColumnType("INTEGER");
b.Property("DisplayMissingEpisodes")
.HasColumnType("INTEGER");
b.Property("EnableNextEpisodeAutoPlay")
.HasColumnType("INTEGER");
b.Property("EnableUserPreferenceAccess")
.HasColumnType("INTEGER");
b.Property("GroupedFolders")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("HidePlayedInLatest")
.HasColumnType("INTEGER");
b.Property("InvalidLoginAttemptCount")
.HasColumnType("INTEGER");
b.Property("LatestItemExcludes")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("LoginAttemptsBeforeLockout")
.HasColumnType("INTEGER");
b.Property("MustUpdatePassword")
.HasColumnType("INTEGER");
b.Property("MyMediaExcludes")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("OrderedViews")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("Password")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("PlayDefaultAudioTrack")
.HasColumnType("INTEGER");
b.Property("RememberAudioSelections")
.HasColumnType("INTEGER");
b.Property("RememberSubtitleSelections")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("SubtitleLanguagePrefernce")
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("SubtitleMode")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("Username")
.IsRequired()
.HasColumnType("TEXT")
.HasMaxLength(255);
b.HasKey("Id");
b.ToTable("User");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Book", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.ToTable("Book");
b.HasDiscriminator().HasValue("Book");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CustomItem", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.ToTable("LibraryItem");
b.HasDiscriminator().HasValue("CustomItem");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Episode", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.Property("EpisodeNumber")
.HasColumnType("INTEGER");
b.Property("Episode_Episodes_Id")
.HasColumnType("INTEGER");
b.HasIndex("Episode_Episodes_Id");
b.ToTable("Episode");
b.HasDiscriminator().HasValue("Episode");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Movie", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.ToTable("Movie");
b.HasDiscriminator().HasValue("Movie");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MusicAlbum", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.ToTable("MusicAlbum");
b.HasDiscriminator().HasValue("MusicAlbum");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Photo", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.ToTable("Photo");
b.HasDiscriminator().HasValue("Photo");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Season", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.Property("SeasonNumber")
.HasColumnType("INTEGER");
b.Property("Season_Seasons_Id")
.HasColumnType("INTEGER");
b.HasIndex("Season_Seasons_Id");
b.ToTable("Season");
b.HasDiscriminator().HasValue("Season");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Series", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.Property("AirsDayOfWeek")
.HasColumnType("INTEGER");
b.Property("AirsTime")
.HasColumnType("TEXT");
b.Property("FirstAired")
.HasColumnType("TEXT");
b.ToTable("Series");
b.HasDiscriminator().HasValue("Series");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Track", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.LibraryItem");
b.Property("TrackNumber")
.HasColumnType("INTEGER");
b.Property("Track_Tracks_Id")
.HasColumnType("INTEGER");
b.HasIndex("Track_Tracks_Id");
b.ToTable("Track");
b.HasDiscriminator().HasValue("Track");
});
modelBuilder.Entity("Jellyfin.Data.Entities.BookMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("BookMetadata_BookMetadata_Id")
.HasColumnType("INTEGER");
b.Property("ISBN")
.HasColumnType("INTEGER");
b.HasIndex("BookMetadata_BookMetadata_Id");
b.ToTable("Metadata");
b.HasDiscriminator().HasValue("BookMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CompanyMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("CompanyMetadata_CompanyMetadata_Id")
.HasColumnType("INTEGER");
b.Property("Country")
.HasColumnType("TEXT")
.HasMaxLength(2);
b.Property("Description")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("Headquarters")
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("Homepage")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.HasIndex("CompanyMetadata_CompanyMetadata_Id");
b.ToTable("CompanyMetadata");
b.HasDiscriminator().HasValue("CompanyMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("CustomItemMetadata_CustomItemMetadata_Id")
.HasColumnType("INTEGER");
b.HasIndex("CustomItemMetadata_CustomItemMetadata_Id");
b.ToTable("CustomItemMetadata");
b.HasDiscriminator().HasValue("CustomItemMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.EpisodeMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("EpisodeMetadata_EpisodeMetadata_Id")
.HasColumnType("INTEGER");
b.Property("Outline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("Plot")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("Tagline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.HasIndex("EpisodeMetadata_EpisodeMetadata_Id");
b.ToTable("EpisodeMetadata");
b.HasDiscriminator().HasValue("EpisodeMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MovieMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("Country")
.HasColumnName("MovieMetadata_Country")
.HasColumnType("TEXT")
.HasMaxLength(2);
b.Property("MovieMetadata_MovieMetadata_Id")
.HasColumnType("INTEGER");
b.Property("Outline")
.HasColumnName("MovieMetadata_Outline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("Plot")
.HasColumnName("MovieMetadata_Plot")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("Tagline")
.HasColumnName("MovieMetadata_Tagline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.HasIndex("MovieMetadata_MovieMetadata_Id");
b.ToTable("MovieMetadata");
b.HasDiscriminator().HasValue("MovieMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MusicAlbumMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("Barcode")
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("Country")
.HasColumnName("MusicAlbumMetadata_Country")
.HasColumnType("TEXT")
.HasMaxLength(2);
b.Property("LabelNumber")
.HasColumnType("TEXT")
.HasMaxLength(255);
b.Property("MusicAlbumMetadata_MusicAlbumMetadata_Id")
.HasColumnType("INTEGER");
b.HasIndex("MusicAlbumMetadata_MusicAlbumMetadata_Id");
b.ToTable("MusicAlbumMetadata");
b.HasDiscriminator().HasValue("MusicAlbumMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.PhotoMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("PhotoMetadata_PhotoMetadata_Id")
.HasColumnType("INTEGER");
b.HasIndex("PhotoMetadata_PhotoMetadata_Id");
b.ToTable("PhotoMetadata");
b.HasDiscriminator().HasValue("PhotoMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.SeasonMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("Outline")
.HasColumnName("SeasonMetadata_Outline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("SeasonMetadata_SeasonMetadata_Id")
.HasColumnType("INTEGER");
b.HasIndex("SeasonMetadata_SeasonMetadata_Id");
b.ToTable("SeasonMetadata");
b.HasDiscriminator().HasValue("SeasonMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.SeriesMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("Country")
.HasColumnName("SeriesMetadata_Country")
.HasColumnType("TEXT")
.HasMaxLength(2);
b.Property("Outline")
.HasColumnName("SeriesMetadata_Outline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.Property("Plot")
.HasColumnName("SeriesMetadata_Plot")
.HasColumnType("TEXT")
.HasMaxLength(65535);
b.Property("SeriesMetadata_SeriesMetadata_Id")
.HasColumnType("INTEGER");
b.Property("Tagline")
.HasColumnName("SeriesMetadata_Tagline")
.HasColumnType("TEXT")
.HasMaxLength(1024);
b.HasIndex("SeriesMetadata_SeriesMetadata_Id");
b.ToTable("SeriesMetadata");
b.HasDiscriminator().HasValue("SeriesMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.TrackMetadata", b =>
{
b.HasBaseType("Jellyfin.Data.Entities.Metadata");
b.Property("TrackMetadata_TrackMetadata_Id")
.HasColumnType("INTEGER");
b.HasIndex("TrackMetadata_TrackMetadata_Id");
b.ToTable("TrackMetadata");
b.HasDiscriminator().HasValue("TrackMetadata");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Artwork", b =>
{
b.HasOne("Jellyfin.Data.Entities.Metadata", null)
.WithMany("Artwork")
.HasForeignKey("PersonRole_PersonRoles_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Chapter", b =>
{
b.HasOne("Jellyfin.Data.Entities.Release", null)
.WithMany("Chapters")
.HasForeignKey("Chapter_Chapters_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CollectionItem", b =>
{
b.HasOne("Jellyfin.Data.Entities.Collection", null)
.WithMany("CollectionItem")
.HasForeignKey("CollectionItem_CollectionItem_Id");
b.HasOne("Jellyfin.Data.Entities.CollectionItem", "Next")
.WithMany()
.HasForeignKey("CollectionItem_Next_Id");
b.HasOne("Jellyfin.Data.Entities.CollectionItem", "Previous")
.WithMany()
.HasForeignKey("CollectionItem_Previous_Id");
b.HasOne("Jellyfin.Data.Entities.LibraryItem", "LibraryItem")
.WithMany()
.HasForeignKey("LibraryItem_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Company", b =>
{
b.HasOne("Jellyfin.Data.Entities.MusicAlbumMetadata", null)
.WithMany("Labels")
.HasForeignKey("Company_Labels_Id");
b.HasOne("Jellyfin.Data.Entities.SeriesMetadata", null)
.WithMany("Networks")
.HasForeignKey("Company_Networks_Id");
b.HasOne("Jellyfin.Data.Entities.Company", "Parent")
.WithMany()
.HasForeignKey("Company_Parent_Id");
b.HasOne("Jellyfin.Data.Entities.BookMetadata", null)
.WithMany("Publishers")
.HasForeignKey("Company_Publishers_Id");
b.HasOne("Jellyfin.Data.Entities.MovieMetadata", null)
.WithMany("Studios")
.HasForeignKey("Company_Studios_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Genre", b =>
{
b.HasOne("Jellyfin.Data.Entities.Metadata", null)
.WithMany("Genres")
.HasForeignKey("PersonRole_PersonRoles_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Group", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("Groups")
.HasForeignKey("Group_Groups_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.LibraryItem", b =>
{
b.HasOne("Jellyfin.Data.Entities.LibraryRoot", "LibraryRoot")
.WithMany()
.HasForeignKey("LibraryRoot_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.LibraryRoot", b =>
{
b.HasOne("Jellyfin.Data.Entities.Library", "Library")
.WithMany()
.HasForeignKey("Library_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MediaFile", b =>
{
b.HasOne("Jellyfin.Data.Entities.Release", null)
.WithMany("MediaFiles")
.HasForeignKey("MediaFile_MediaFiles_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MediaFileStream", b =>
{
b.HasOne("Jellyfin.Data.Entities.MediaFile", null)
.WithMany("MediaFileStreams")
.HasForeignKey("MediaFileStream_MediaFileStreams_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MetadataProviderId", b =>
{
b.HasOne("Jellyfin.Data.Entities.Person", null)
.WithMany("Sources")
.HasForeignKey("MetadataProviderId_Sources_Id");
b.HasOne("Jellyfin.Data.Entities.PersonRole", null)
.WithMany("Sources")
.HasForeignKey("MetadataProviderId_Sources_Id");
b.HasOne("Jellyfin.Data.Entities.MetadataProvider", "MetadataProvider")
.WithMany()
.HasForeignKey("MetadataProvider_Id");
b.HasOne("Jellyfin.Data.Entities.Metadata", null)
.WithMany("Sources")
.HasForeignKey("PersonRole_PersonRoles_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
{
b.HasOne("Jellyfin.Data.Entities.Group", null)
.WithMany("GroupPermissions")
.HasForeignKey("Permission_GroupPermissions_Id");
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("Permissions")
.HasForeignKey("Permission_Permissions_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.PersonRole", b =>
{
b.HasOne("Jellyfin.Data.Entities.Artwork", "Artwork")
.WithMany()
.HasForeignKey("Artwork_Artwork_Id");
b.HasOne("Jellyfin.Data.Entities.Metadata", null)
.WithMany("PersonRoles")
.HasForeignKey("PersonRole_PersonRoles_Id");
b.HasOne("Jellyfin.Data.Entities.Person", "Person")
.WithMany()
.HasForeignKey("Person_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
{
b.HasOne("Jellyfin.Data.Entities.Group", null)
.WithMany("Preferences")
.HasForeignKey("Preference_Preferences_Id");
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("Preferences")
.HasForeignKey("Preference_Preferences_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.ProviderMapping", b =>
{
b.HasOne("Jellyfin.Data.Entities.Group", null)
.WithMany("ProviderMappings")
.HasForeignKey("ProviderMapping_ProviderMappings_Id");
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("ProviderMappings")
.HasForeignKey("ProviderMapping_ProviderMappings_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Rating", b =>
{
b.HasOne("Jellyfin.Data.Entities.Metadata", null)
.WithMany("Ratings")
.HasForeignKey("PersonRole_PersonRoles_Id");
b.HasOne("Jellyfin.Data.Entities.RatingSource", "RatingType")
.WithMany()
.HasForeignKey("RatingSource_RatingType_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.RatingSource", b =>
{
b.HasOne("Jellyfin.Data.Entities.MetadataProviderId", "Source")
.WithMany()
.HasForeignKey("MetadataProviderId_Source_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Release", b =>
{
b.HasOne("Jellyfin.Data.Entities.Book", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id");
b.HasOne("Jellyfin.Data.Entities.CustomItem", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id")
.HasConstraintName("FK_Release_LibraryItem_Release_Releases_Id1");
b.HasOne("Jellyfin.Data.Entities.Episode", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id")
.HasConstraintName("FK_Release_LibraryItem_Release_Releases_Id2");
b.HasOne("Jellyfin.Data.Entities.Movie", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id")
.HasConstraintName("FK_Release_LibraryItem_Release_Releases_Id3");
b.HasOne("Jellyfin.Data.Entities.Photo", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id")
.HasConstraintName("FK_Release_LibraryItem_Release_Releases_Id4");
b.HasOne("Jellyfin.Data.Entities.Track", null)
.WithMany("Releases")
.HasForeignKey("Release_Releases_Id")
.HasConstraintName("FK_Release_LibraryItem_Release_Releases_Id5");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Episode", b =>
{
b.HasOne("Jellyfin.Data.Entities.Season", null)
.WithMany("Episodes")
.HasForeignKey("Episode_Episodes_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Season", b =>
{
b.HasOne("Jellyfin.Data.Entities.Series", null)
.WithMany("Seasons")
.HasForeignKey("Season_Seasons_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Track", b =>
{
b.HasOne("Jellyfin.Data.Entities.MusicAlbum", null)
.WithMany("Tracks")
.HasForeignKey("Track_Tracks_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.BookMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Book", null)
.WithMany("BookMetadata")
.HasForeignKey("BookMetadata_BookMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CompanyMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Company", null)
.WithMany("CompanyMetadata")
.HasForeignKey("CompanyMetadata_CompanyMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.CustomItem", null)
.WithMany("CustomItemMetadata")
.HasForeignKey("CustomItemMetadata_CustomItemMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.EpisodeMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Episode", null)
.WithMany("EpisodeMetadata")
.HasForeignKey("EpisodeMetadata_EpisodeMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MovieMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Movie", null)
.WithMany("MovieMetadata")
.HasForeignKey("MovieMetadata_MovieMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.MusicAlbumMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.MusicAlbum", null)
.WithMany("MusicAlbumMetadata")
.HasForeignKey("MusicAlbumMetadata_MusicAlbumMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.PhotoMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Photo", null)
.WithMany("PhotoMetadata")
.HasForeignKey("PhotoMetadata_PhotoMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.SeasonMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Season", null)
.WithMany("SeasonMetadata")
.HasForeignKey("SeasonMetadata_SeasonMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.SeriesMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Series", null)
.WithMany("SeriesMetadata")
.HasForeignKey("SeriesMetadata_SeriesMetadata_Id");
});
modelBuilder.Entity("Jellyfin.Data.Entities.TrackMetadata", b =>
{
b.HasOne("Jellyfin.Data.Entities.Track", null)
.WithMany("TrackMetadata")
.HasForeignKey("TrackMetadata_TrackMetadata_Id");
});
#pragma warning restore 612, 618
}
}
}