// using System; using Flaro.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace Flaro.Data.Migrations { [DbContext(typeof(FlaroContext))] [Migration("20261007150601_Fassungsnamen")] partial class Fassungsnamen { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "10.0.12"); modelBuilder.Entity("Flaro.Core.Auth.AuthCode", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ApprovedByUserId") .HasColumnType("TEXT"); b.Property("Code") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("ConsumedAt") .HasColumnType("INTEGER"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("DeviceId") .IsRequired() .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("DeviceName") .IsRequired() .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("ExpiresAt") .HasColumnType("INTEGER"); b.Property("HandleFingerprint") .IsRequired() .HasMaxLength(64) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("Code"); b.HasIndex("HandleFingerprint") .IsUnique(); b.ToTable("AuthCodes"); }); modelBuilder.Entity("Flaro.Core.Auth.DeviceToken", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("DeviceId") .IsRequired() .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("DeviceName") .IsRequired() .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("LastSeenAt") .HasColumnType("INTEGER"); b.Property("RevokedAt") .HasColumnType("INTEGER"); b.Property("TokenFingerprint") .IsRequired() .HasMaxLength(64) .HasColumnType("TEXT"); b.Property("UserId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("TokenFingerprint") .IsUnique(); b.HasIndex("UserId"); b.ToTable("DeviceTokens"); }); modelBuilder.Entity("Flaro.Core.Libraries.Library", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Kind") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("Path") .IsRequired() .HasMaxLength(1024) .HasColumnType("TEXT"); b.Property("ReviewNewItems") .HasColumnType("INTEGER"); b.Property("SortOrder") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("Libraries"); }); modelBuilder.Entity("Flaro.Core.Library.Credit", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Character") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("Order") .HasColumnType("INTEGER"); b.Property("PersonId") .HasColumnType("TEXT"); b.Property("Role") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("MovieId"); b.HasIndex("PersonId"); b.HasIndex("SeriesId"); b.ToTable("Credits"); }); modelBuilder.Entity("Flaro.Core.Library.Episode", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AddedAt") .HasColumnType("INTEGER"); b.Property("EpisodeNumber") .HasColumnType("INTEGER"); b.Property("MetadataLanguage") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("Overview") .HasColumnType("TEXT"); b.Property("PublishAt") .HasColumnType("INTEGER"); b.Property("SeasonNumber") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("TEXT"); b.Property("StillImage") .HasColumnType("TEXT"); b.Property("Title") .HasMaxLength(512) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("SeriesId", "SeasonNumber", "EpisodeNumber") .IsUnique(); b.ToTable("Episodes"); }); modelBuilder.Entity("Flaro.Core.Library.Genre", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(64) .HasColumnType("TEXT") .UseCollation("NOCASE"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("Genres"); }); modelBuilder.Entity("Flaro.Core.Library.GenreLink", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("GenreId") .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("MovieId"); b.HasIndex("SeriesId"); b.HasIndex("GenreId", "MovieId") .IsUnique() .HasFilter("\"MovieId\" IS NOT NULL"); b.HasIndex("GenreId", "SeriesId") .IsUnique() .HasFilter("\"SeriesId\" IS NOT NULL"); b.ToTable("GenreLinks"); }); modelBuilder.Entity("Flaro.Core.Library.ItemTranslation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("EpisodeId") .HasColumnType("TEXT"); b.Property("FetchedAt") .HasColumnType("INTEGER"); b.Property("Language") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("Overview") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("TEXT"); b.Property("Tagline") .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Title") .HasMaxLength(512) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("EpisodeId", "Language") .IsUnique() .HasFilter("\"EpisodeId\" IS NOT NULL"); b.HasIndex("MovieId", "Language") .IsUnique() .HasFilter("\"MovieId\" IS NOT NULL"); b.HasIndex("SeriesId", "Language") .IsUnique() .HasFilter("\"SeriesId\" IS NOT NULL"); b.ToTable("Translations"); }); modelBuilder.Entity("Flaro.Core.Library.MediaFile", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("BitRate") .HasColumnType("INTEGER"); b.Property("Container") .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("Duration") .HasColumnType("INTEGER"); b.Property("EpisodeId") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("TEXT"); b.Property("MissingSince") .HasColumnType("INTEGER"); b.Property("ModifiedAt") .HasColumnType("INTEGER"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("Path") .IsRequired() .HasMaxLength(1024) .HasColumnType("TEXT"); b.Property("ProbedAt") .HasColumnType("INTEGER"); b.Property("SeenAt") .HasColumnType("INTEGER"); b.Property("SizeBytes") .HasColumnType("INTEGER"); b.Property("VersionLabel") .HasMaxLength(64) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("EpisodeId"); b.HasIndex("MovieId"); b.HasIndex("LibraryId", "Path") .IsUnique(); b.ToTable("MediaFiles"); }); modelBuilder.Entity("Flaro.Core.Library.MediaStream", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Channels") .HasColumnType("INTEGER"); b.Property("Codec") .HasMaxLength(64) .HasColumnType("TEXT"); b.Property("Height") .HasColumnType("INTEGER"); b.Property("Index") .HasColumnType("INTEGER"); b.Property("IsDefault") .HasColumnType("INTEGER"); b.Property("IsForced") .HasColumnType("INTEGER"); b.Property("Kind") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("Language") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("MediaFileId") .HasColumnType("TEXT"); b.Property("Title") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("Width") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("MediaFileId", "Index") .IsUnique(); b.ToTable("MediaStreams"); }); modelBuilder.Entity("Flaro.Core.Library.Meldung", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Art") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("EpisodeId") .HasColumnType("TEXT"); b.Property("ErledigtAm") .HasColumnType("INTEGER"); b.Property("ErledigtVon") .HasColumnType("TEXT"); b.Property("GemeldetAm") .HasColumnType("INTEGER"); b.Property("Kommentar") .IsRequired() .HasMaxLength(2000) .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("SeasonNumber") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("TEXT"); b.Property("Stelle") .HasColumnType("INTEGER"); b.Property("UserId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("EpisodeId"); b.HasIndex("MovieId"); b.HasIndex("SeriesId"); b.HasIndex("ErledigtAm", "GemeldetAm"); b.HasIndex("UserId", "GemeldetAm"); b.ToTable("Meldungen"); }); modelBuilder.Entity("Flaro.Core.Library.Movie", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AddedAt") .HasColumnType("INTEGER"); b.Property("BackdropImage") .HasColumnType("TEXT"); b.Property("BackdropPinned") .HasColumnType("INTEGER"); b.Property("ChangedSince") .HasColumnType("INTEGER"); b.Property("ContentRating") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("ImdbId") .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("TEXT"); b.Property("LogoImage") .HasColumnType("TEXT"); b.Property("LogoPinned") .HasColumnType("INTEGER"); b.Property("MatchLocked") .HasColumnType("INTEGER"); b.Property("MetadataLanguage") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("OriginalTitle") .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Overview") .HasColumnType("TEXT"); b.Property("ParsedTitle") .IsRequired() .HasColumnType("TEXT"); b.Property("ParsedYear") .HasColumnType("INTEGER"); b.Property("PosterImage") .HasColumnType("TEXT"); b.Property("PosterPinned") .HasColumnType("INTEGER"); b.Property("PublishAt") .HasColumnType("INTEGER"); b.Property("Rating") .HasColumnType("REAL"); b.Property("RuntimeMinutes") .HasColumnType("INTEGER"); b.Property("SortTitlePinned") .HasColumnType("INTEGER"); b.Property("SortTitleValue") .IsRequired() .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Tagline") .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("TitlePinned") .HasColumnType("INTEGER"); b.Property("TmdbId") .HasColumnType("INTEGER"); b.Property("Year") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("LibraryId", "MetadataLanguage"); b.HasIndex("LibraryId", "SortTitleValue"); b.HasIndex("LibraryId", "TmdbId") .IsUnique() .HasFilter("\"TmdbId\" IS NOT NULL"); b.ToTable("Movies"); }); modelBuilder.Entity("Flaro.Core.Library.Person", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Image") .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("TmdbId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("TmdbId") .IsUnique(); b.ToTable("People"); }); modelBuilder.Entity("Flaro.Core.Library.Series", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AddedAt") .HasColumnType("INTEGER"); b.Property("BackdropImage") .HasColumnType("TEXT"); b.Property("BackdropPinned") .HasColumnType("INTEGER"); b.Property("ChangedSince") .HasColumnType("INTEGER"); b.Property("ContentRating") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("ImdbId") .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("TEXT"); b.Property("LogoImage") .HasColumnType("TEXT"); b.Property("LogoPinned") .HasColumnType("INTEGER"); b.Property("MatchLocked") .HasColumnType("INTEGER"); b.Property("MetadataLanguage") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("OriginalTitle") .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Overview") .HasColumnType("TEXT"); b.Property("ParsedTitle") .IsRequired() .HasColumnType("TEXT"); b.Property("ParsedYear") .HasColumnType("INTEGER"); b.Property("PosterImage") .HasColumnType("TEXT"); b.Property("PosterPinned") .HasColumnType("INTEGER"); b.Property("PublishAt") .HasColumnType("INTEGER"); b.Property("Rating") .HasColumnType("REAL"); b.Property("RuntimeMinutes") .HasColumnType("INTEGER"); b.Property("SortTitlePinned") .HasColumnType("INTEGER"); b.Property("SortTitleValue") .IsRequired() .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Tagline") .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasMaxLength(512) .HasColumnType("TEXT"); b.Property("TitlePinned") .HasColumnType("INTEGER"); b.Property("TmdbId") .HasColumnType("INTEGER"); b.Property("Year") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("LibraryId", "MetadataLanguage"); b.HasIndex("LibraryId", "SortTitleValue"); b.HasIndex("LibraryId", "TmdbId") .IsUnique() .HasFilter("\"TmdbId\" IS NOT NULL"); b.ToTable("Series"); }); modelBuilder.Entity("Flaro.Core.Playback.Sehtag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("EpisodeId") .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("Sekunden") .HasColumnType("REAL"); b.Property("Tag") .HasColumnType("INTEGER"); b.Property("UserId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("EpisodeId"); b.HasIndex("MovieId"); b.HasIndex("UserId", "Tag"); b.HasIndex("UserId", "Tag", "EpisodeId") .IsUnique() .HasFilter("\"EpisodeId\" IS NOT NULL"); b.HasIndex("UserId", "Tag", "MovieId") .IsUnique() .HasFilter("\"MovieId\" IS NOT NULL"); b.ToTable("Sehtage"); }); modelBuilder.Entity("Flaro.Core.Playback.UserItemState", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Dismissed") .HasColumnType("INTEGER"); b.Property("EpisodeId") .HasColumnType("TEXT"); b.Property("Favourite") .HasColumnType("INTEGER"); b.Property("InProgress") .HasColumnType("INTEGER"); b.Property("LastPlayedAt") .HasColumnType("INTEGER"); b.Property("MovieId") .HasColumnType("TEXT"); b.Property("PlayCount") .HasColumnType("INTEGER"); b.Property("Position") .HasColumnType("INTEGER"); b.Property("Rating") .HasColumnType("INTEGER"); b.Property("Runtime") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("UserId") .HasColumnType("TEXT"); b.Property("Watched") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("EpisodeId"); b.HasIndex("MovieId"); b.HasIndex("SeriesId"); b.HasIndex("UserId", "EpisodeId") .IsUnique() .HasFilter("\"EpisodeId\" IS NOT NULL"); b.HasIndex("UserId", "MovieId") .IsUnique() .HasFilter("\"MovieId\" IS NOT NULL"); b.HasIndex("UserId", "SeriesId") .IsUnique() .HasFilter("\"SeriesId\" IS NOT NULL"); b.HasIndex("UserId", "InProgress", "UpdatedAt"); b.ToTable("UserItemStates"); }); modelBuilder.Entity("Flaro.Core.ServerSetting", b => { b.Property("Key") .HasMaxLength(128) .HasColumnType("TEXT"); b.Property("Value") .IsRequired() .HasMaxLength(4096) .HasColumnType("TEXT"); b.HasKey("Key"); b.ToTable("Settings"); }); modelBuilder.Entity("Flaro.Core.Users.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AvatarImage") .HasMaxLength(64) .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("IsAdministrator") .HasColumnType("INTEGER"); b.Property("Language") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("PasswordHash") .IsRequired() .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("UserName") .IsRequired() .HasMaxLength(64) .HasColumnType("TEXT") .UseCollation("NOCASE"); b.HasKey("Id"); b.HasIndex("UserName") .IsUnique(); b.ToTable("Users"); }); modelBuilder.Entity("Flaro.Core.Auth.DeviceToken", b => { b.HasOne("Flaro.Core.Users.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.Credit", b => { b.HasOne("Flaro.Core.Library.Movie", null) .WithMany() .HasForeignKey("MovieId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Person", null) .WithMany() .HasForeignKey("PersonId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Flaro.Core.Library.Series", null) .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity("Flaro.Core.Library.Episode", b => { b.HasOne("Flaro.Core.Library.Series", null) .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.GenreLink", b => { b.HasOne("Flaro.Core.Library.Genre", null) .WithMany() .HasForeignKey("GenreId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Flaro.Core.Library.Movie", null) .WithMany() .HasForeignKey("MovieId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Series", null) .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity("Flaro.Core.Library.MediaFile", b => { b.HasOne("Flaro.Core.Libraries.Library", null) .WithMany() .HasForeignKey("LibraryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.MediaStream", b => { b.HasOne("Flaro.Core.Library.MediaFile", null) .WithMany() .HasForeignKey("MediaFileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.Meldung", b => { b.HasOne("Flaro.Core.Library.Episode", null) .WithMany() .HasForeignKey("EpisodeId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Movie", null) .WithMany() .HasForeignKey("MovieId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Series", null) .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Users.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.Movie", b => { b.HasOne("Flaro.Core.Libraries.Library", null) .WithMany() .HasForeignKey("LibraryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Library.Series", b => { b.HasOne("Flaro.Core.Libraries.Library", null) .WithMany() .HasForeignKey("LibraryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Playback.Sehtag", b => { b.HasOne("Flaro.Core.Library.Episode", null) .WithMany() .HasForeignKey("EpisodeId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Movie", null) .WithMany() .HasForeignKey("MovieId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Users.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Flaro.Core.Playback.UserItemState", b => { b.HasOne("Flaro.Core.Library.Episode", null) .WithMany() .HasForeignKey("EpisodeId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Movie", null) .WithMany() .HasForeignKey("MovieId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Library.Series", null) .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Flaro.Core.Users.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); #pragma warning restore 612, 618 } } }