// using System; using HyperBooru; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace HyperBooru.Migrations { [DbContext(typeof(HBContext))] [Migration("20260131125650_InitialMigration")] partial class InitialMigration { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.23") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("HyperBooru.HBObject", b => { b.Property("ObjectId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ObjectId")); b.Property("Guid") .HasColumnType("uuid"); b.HasKey("ObjectId"); b.HasIndex("Guid"); b.ToTable("Objects", (string)null); b.UseTptMappingStrategy(); }); modelBuilder.Entity("HyperBooru.OcrData", b => { b.Property("OcrDataId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("OcrDataId")); b.Property("MediaId") .HasColumnType("integer"); b.Property("SearchableText") .IsRequired() .HasColumnType("text"); b.Property("Text") .IsRequired() .HasColumnType("text"); b.Property("Timestamp") .HasColumnType("timestamp with time zone"); b.HasKey("OcrDataId"); b.HasIndex("MediaId") .IsUnique(); b.ToTable("OcrData"); }); modelBuilder.Entity("TagDefinitionTagDefinition", b => { b.Property("ImplicitTagsObjectId") .HasColumnType("integer"); b.Property("TagDefinitionObjectId") .HasColumnType("integer"); b.HasKey("ImplicitTagsObjectId", "TagDefinitionObjectId"); b.HasIndex("TagDefinitionObjectId"); b.ToTable("TagDefinitionTagDefinition"); }); modelBuilder.Entity("HyperBooru.Media", b => { b.HasBaseType("HyperBooru.HBObject"); b.Property("CurrentUploadedFileId") .HasColumnType("integer"); b.Property("LongDescription") .HasColumnType("text"); b.Property("ShortDescription") .HasColumnType("text"); b.HasIndex("CurrentUploadedFileId") .IsUnique(); b.ToTable("Media", (string)null); }); modelBuilder.Entity("HyperBooru.Tag", b => { b.HasBaseType("HyperBooru.HBObject"); b.Property("CreateTime") .HasColumnType("timestamp with time zone"); b.Property("TagDefinitionId") .HasColumnType("integer"); b.Property("TargetObjectId") .HasColumnType("integer"); b.HasIndex("TagDefinitionId"); b.HasIndex("TargetObjectId"); b.ToTable("Tags", (string)null); }); modelBuilder.Entity("HyperBooru.TagDefinition", b => { b.HasBaseType("HyperBooru.HBObject"); b.Property("Alias") .HasColumnType("text"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("Namespace") .HasColumnType("text"); b.Property("Source") .HasColumnType("integer"); b.ToTable("TagDefinitions", (string)null); b.HasData( new { ObjectId = -1, Guid = new Guid("ebdad4f8-455a-4351-8017-1d4854d6fa38"), Name = "nsfw", Source = 0 }, new { ObjectId = -2, Guid = new Guid("ea212801-5bcc-4c0e-814f-fb9d30db58bc"), Name = "ingest", Source = 0 }); }); modelBuilder.Entity("HyperBooru.UploadedFile", b => { b.HasBaseType("HyperBooru.HBObject"); b.Property("Checksum") .IsRequired() .HasColumnType("text"); b.Property("ChecksumVerified") .HasColumnType("boolean"); b.Property("CreateTime") .HasColumnType("timestamp with time zone"); b.Property("Filename") .HasColumnType("text"); b.Property("Height") .HasColumnType("integer"); b.Property("LastAccessTime") .HasColumnType("timestamp with time zone"); b.Property("LastWriteTime") .HasColumnType("timestamp with time zone"); b.Property("Length") .HasColumnType("bigint"); b.Property("MediaObjectId") .HasColumnType("integer"); b.Property("MimeType") .IsRequired() .HasColumnType("text"); b.Property("Path") .HasColumnType("text"); b.Property("PathType") .HasColumnType("integer"); b.Property("UploadTime") .HasColumnType("timestamp with time zone"); b.Property("Width") .HasColumnType("integer"); b.HasIndex("MediaObjectId"); b.ToTable("UploadedFiles", (string)null); }); modelBuilder.Entity("HyperBooru.User", b => { b.HasBaseType("HyperBooru.HBObject"); b.Property("PasswordHash") .IsRequired() .HasColumnType("text"); b.Property("Username") .IsRequired() .HasColumnType("text"); b.HasIndex("Username"); b.ToTable("Users"); b.HasData( new { ObjectId = -3, Guid = new Guid("4fa948f4-7c45-4f81-bb6b-e417491e6c96"), PasswordHash = "P4geAuE2yX/PDRHuJSq74FF5vO782rWz5c0LAQPR8m45DEYAONhu1wYnAn60PSNyjocqEBdnCeKCJfK3sKyuWw==", Username = "admin" }); }); modelBuilder.Entity("HyperBooru.OcrData", b => { b.HasOne("HyperBooru.Media", "Media") .WithOne("OcrData") .HasForeignKey("HyperBooru.OcrData", "MediaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Media"); }); modelBuilder.Entity("TagDefinitionTagDefinition", b => { b.HasOne("HyperBooru.TagDefinition", null) .WithMany() .HasForeignKey("ImplicitTagsObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HyperBooru.TagDefinition", null) .WithMany() .HasForeignKey("TagDefinitionObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("HyperBooru.Media", b => { b.HasOne("HyperBooru.UploadedFile", "CurrentUploadedFile") .WithOne() .HasForeignKey("HyperBooru.Media", "CurrentUploadedFileId"); b.HasOne("HyperBooru.HBObject", null) .WithOne() .HasForeignKey("HyperBooru.Media", "ObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("CurrentUploadedFile"); }); modelBuilder.Entity("HyperBooru.Tag", b => { b.HasOne("HyperBooru.HBObject", null) .WithOne() .HasForeignKey("HyperBooru.Tag", "ObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HyperBooru.TagDefinition", "TagDefinition") .WithMany() .HasForeignKey("TagDefinitionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HyperBooru.HBObject", "Target") .WithMany("Tags") .HasForeignKey("TargetObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("TagDefinition"); b.Navigation("Target"); }); modelBuilder.Entity("HyperBooru.TagDefinition", b => { b.HasOne("HyperBooru.HBObject", null) .WithOne() .HasForeignKey("HyperBooru.TagDefinition", "ObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("HyperBooru.UploadedFile", b => { b.HasOne("HyperBooru.Media", "Media") .WithMany("UploadedFiles") .HasForeignKey("MediaObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HyperBooru.HBObject", null) .WithOne() .HasForeignKey("HyperBooru.UploadedFile", "ObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Media"); }); modelBuilder.Entity("HyperBooru.User", b => { b.HasOne("HyperBooru.HBObject", null) .WithOne() .HasForeignKey("HyperBooru.User", "ObjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("HyperBooru.HBObject", b => { b.Navigation("Tags"); }); modelBuilder.Entity("HyperBooru.Media", b => { b.Navigation("OcrData"); b.Navigation("UploadedFiles"); }); #pragma warning restore 612, 618 } } }