//
using System;
using Jellyfin.Server.Implementations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Jellyfin.Server.Implementations.Migrations
{
[DbContext(typeof(JellyfinDb))]
partial class JellyfinDbModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("jellyfin")
.HasAnnotation("ProductVersion", "6.0.9");
modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DayOfWeek")
.HasColumnType("INTEGER");
b.Property("EndHour")
.HasColumnType("REAL");
b.Property("StartHour")
.HasColumnType("REAL");
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("AccessSchedules", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.ActivityLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DateCreated")
.HasColumnType("TEXT");
b.Property("ItemId")
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("LogSeverity")
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("Overview")
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("ShortOverview")
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("Type")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("DateCreated");
b.ToTable("ActivityLogs", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemDisplayPreferences", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Client")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("ItemId")
.HasColumnType("TEXT");
b.Property("Key")
.IsRequired()
.HasColumnType("TEXT");
b.Property("UserId")
.HasColumnType("TEXT");
b.Property("Value")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("UserId", "ItemId", "Client", "Key")
.IsUnique();
b.ToTable("CustomItemDisplayPreferences", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("ChromecastVersion")
.HasColumnType("INTEGER");
b.Property("Client")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("DashboardTheme")
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("EnableNextVideoInfoOverlay")
.HasColumnType("INTEGER");
b.Property("IndexBy")
.HasColumnType("INTEGER");
b.Property("ItemId")
.HasColumnType("TEXT");
b.Property("ScrollDirection")
.HasColumnType("INTEGER");
b.Property("ShowBackdrop")
.HasColumnType("INTEGER");
b.Property("ShowSidebar")
.HasColumnType("INTEGER");
b.Property("SkipBackwardLength")
.HasColumnType("INTEGER");
b.Property("SkipForwardLength")
.HasColumnType("INTEGER");
b.Property("TvHome")
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("UserId", "ItemId", "Client")
.IsUnique();
b.ToTable("DisplayPreferences", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("DisplayPreferencesId")
.HasColumnType("INTEGER");
b.Property("Order")
.HasColumnType("INTEGER");
b.Property("Type")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("DisplayPreferencesId");
b.ToTable("HomeSection", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("LastModified")
.HasColumnType("TEXT");
b.Property("Path")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("ImageInfos", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Client")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("IndexBy")
.HasColumnType("INTEGER");
b.Property("ItemId")
.HasColumnType("TEXT");
b.Property("RememberIndexing")
.HasColumnType("INTEGER");
b.Property("RememberSorting")
.HasColumnType("INTEGER");
b.Property("SortBy")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.Property("UserId")
.HasColumnType("TEXT");
b.Property("ViewType")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("ItemDisplayPreferences", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("Permission_Permissions_Guid")
.HasColumnType("TEXT");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("UserId")
.HasColumnType("TEXT");
b.Property("Value")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("UserId", "Kind")
.IsUnique()
.HasFilter("[UserId] IS NOT NULL");
b.ToTable("Permissions", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Kind")
.HasColumnType("INTEGER");
b.Property("Preference_Preferences_Guid")
.HasColumnType("TEXT");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("UserId")
.HasColumnType("TEXT");
b.Property("Value")
.IsRequired()
.HasMaxLength(65535)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("UserId", "Kind")
.IsUnique()
.HasFilter("[UserId] IS NOT NULL");
b.ToTable("Preferences", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Security.ApiKey", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AccessToken")
.IsRequired()
.HasColumnType("TEXT");
b.Property("DateCreated")
.HasColumnType("TEXT");
b.Property("DateLastActivity")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("AccessToken")
.IsUnique();
b.ToTable("ApiKeys", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Security.Device", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AccessToken")
.IsRequired()
.HasColumnType("TEXT");
b.Property("AppName")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("AppVersion")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("DateCreated")
.HasColumnType("TEXT");
b.Property("DateLastActivity")
.HasColumnType("TEXT");
b.Property("DateModified")
.HasColumnType("TEXT");
b.Property("DeviceId")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("DeviceName")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("IsActive")
.HasColumnType("INTEGER");
b.Property("UserId")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("DeviceId");
b.HasIndex("AccessToken", "DateLastActivity");
b.HasIndex("DeviceId", "DateLastActivity");
b.HasIndex("UserId", "DeviceId");
b.ToTable("Devices", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.Security.DeviceOptions", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CustomName")
.HasColumnType("TEXT");
b.Property("DeviceId")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("DeviceId")
.IsUnique();
b.ToTable("DeviceOptions", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("TEXT");
b.Property("AudioLanguagePreference")
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("AuthenticationProviderId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("DisplayCollectionsView")
.HasColumnType("INTEGER");
b.Property("DisplayMissingEpisodes")
.HasColumnType("INTEGER");
b.Property("EasyPassword")
.HasMaxLength(65535)
.HasColumnType("TEXT");
b.Property("EnableAutoLogin")
.HasColumnType("INTEGER");
b.Property("EnableLocalPassword")
.HasColumnType("INTEGER");
b.Property("EnableNextEpisodeAutoPlay")
.HasColumnType("INTEGER");
b.Property("EnableUserPreferenceAccess")
.HasColumnType("INTEGER");
b.Property("HidePlayedInLatest")
.HasColumnType("INTEGER");
b.Property("InternalId")
.HasColumnType("INTEGER");
b.Property("InvalidLoginAttemptCount")
.HasColumnType("INTEGER");
b.Property("LastActivityDate")
.HasColumnType("TEXT");
b.Property("LastLoginDate")
.HasColumnType("TEXT");
b.Property("LoginAttemptsBeforeLockout")
.HasColumnType("INTEGER");
b.Property("MaxActiveSessions")
.HasColumnType("INTEGER");
b.Property("MaxParentalAgeRating")
.HasColumnType("INTEGER");
b.Property("MustUpdatePassword")
.HasColumnType("INTEGER");
b.Property("Password")
.HasMaxLength(65535)
.HasColumnType("TEXT");
b.Property("PasswordResetProviderId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("PlayDefaultAudioTrack")
.HasColumnType("INTEGER");
b.Property("RememberAudioSelections")
.HasColumnType("INTEGER");
b.Property("RememberSubtitleSelections")
.HasColumnType("INTEGER");
b.Property("RemoteClientBitrateLimit")
.HasColumnType("INTEGER");
b.Property("RowVersion")
.IsConcurrencyToken()
.HasColumnType("INTEGER");
b.Property("SubtitleLanguagePreference")
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("SubtitleMode")
.HasColumnType("INTEGER");
b.Property("SyncPlayAccess")
.HasColumnType("INTEGER");
b.Property("Username")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT")
.UseCollation("NOCASE");
b.HasKey("Id");
b.HasIndex("Username")
.IsUnique();
b.ToTable("Users", "jellyfin");
});
modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("AccessSchedules")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("DisplayPreferences")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
{
b.HasOne("Jellyfin.Data.Entities.DisplayPreferences", null)
.WithMany("HomeSections")
.HasForeignKey("DisplayPreferencesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithOne("ProfileImage")
.HasForeignKey("Jellyfin.Data.Entities.ImageInfo", "UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("ItemDisplayPreferences")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("Permissions")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", null)
.WithMany("Preferences")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("Jellyfin.Data.Entities.Security.Device", b =>
{
b.HasOne("Jellyfin.Data.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
{
b.Navigation("HomeSections");
});
modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
{
b.Navigation("AccessSchedules");
b.Navigation("DisplayPreferences");
b.Navigation("ItemDisplayPreferences");
b.Navigation("Permissions");
b.Navigation("Preferences");
b.Navigation("ProfileImage");
});
#pragma warning restore 612, 618
}
}
}