//
using System;
using HyperBooru;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace HyperBooru.Migrations
{
[DbContext(typeof(HBContext))]
partial class HBContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.10")
.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("Checksum")
.IsRequired()
.HasColumnType("text");
b.Property("CurrentUploadedFileId")
.HasColumnType("integer");
b.Property("Height")
.HasColumnType("integer");
b.Property("LongDescription")
.HasColumnType("text");
b.Property("MimeType")
.IsRequired()
.HasColumnType("text");
b.Property("ShortDescription")
.HasColumnType("text");
b.Property("Width")
.HasColumnType("integer");
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("ChecksumVerified")
.HasColumnType("boolean");
b.Property("CreateTime")
.HasColumnType("timestamp with time zone");
b.Property("Filename")
.HasColumnType("text");
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("OriginalChecksum")
.IsRequired()
.HasColumnType("text");
b.Property("UploadTime")
.HasColumnType("timestamp with time zone");
b.HasIndex("MediaObjectId");
b.ToTable("UploadedFiles", (string)null);
});
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")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
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.HBObject", b =>
{
b.Navigation("Tags");
});
modelBuilder.Entity("HyperBooru.Media", b =>
{
b.Navigation("OcrData");
b.Navigation("UploadedFiles");
});
#pragma warning restore 612, 618
}
}
}