//
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("20261003123234_GeparsterTitel")]
partial class GeparsterTitel
{
///
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.HasKey("Id");
b.ToTable("Libraries");
});
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("Overview")
.HasColumnType("TEXT");
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.MediaFile", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("TEXT");
b.Property("EpisodeId")
.HasColumnType("TEXT");
b.Property("LibraryId")
.HasColumnType("TEXT");
b.Property("ModifiedAt")
.HasColumnType("INTEGER");
b.Property("MovieId")
.HasColumnType("TEXT");
b.Property("Path")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("TEXT");
b.Property("SeenAt")
.HasColumnType("INTEGER");
b.Property("SizeBytes")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("EpisodeId");
b.HasIndex("MovieId");
b.HasIndex("LibraryId", "Path")
.IsUnique();
b.ToTable("MediaFiles");
});
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("LibraryId")
.HasColumnType("TEXT");
b.Property("Overview")
.HasColumnType("TEXT");
b.Property("ParsedTitle")
.IsRequired()
.HasColumnType("TEXT");
b.Property("PosterImage")
.HasColumnType("TEXT");
b.Property("SortTitleValue")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("Title")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("TmdbId")
.HasColumnType("INTEGER");
b.Property("Year")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("LibraryId", "SortTitleValue");
b.ToTable("Movies");
});
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("LibraryId")
.HasColumnType("TEXT");
b.Property("Overview")
.HasColumnType("TEXT");
b.Property("ParsedTitle")
.IsRequired()
.HasColumnType("TEXT");
b.Property("PosterImage")
.HasColumnType("TEXT");
b.Property("SortTitleValue")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("Title")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("TEXT");
b.Property("TmdbId")
.HasColumnType("INTEGER");
b.Property("Year")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("LibraryId", "SortTitleValue");
b.ToTable("Series");
});
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("CreatedAt")
.HasColumnType("INTEGER");
b.Property("IsAdministrator")
.HasColumnType("INTEGER");
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.Episode", b =>
{
b.HasOne("Flaro.Core.Library.Series", null)
.WithMany()
.HasForeignKey("SeriesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
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.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();
});
#pragma warning restore 612, 618
}
}
}