//
using System;
using System.Collections.Generic;
using Iceshrimp.Backend.Core.Database;
using Iceshrimp.Backend.Core.Database.Tables;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Iceshrimp.Backend.Core.Database.Migrations
{
[DbContext(typeof(DatabaseContext))]
[Migration("20240107181514_RenameTables")]
partial class RenameTables
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "antenna_src_enum", new[] { "home", "all", "users", "list", "group", "instances" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "log_level_enum", new[] { "error", "warning", "info", "success", "debug" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "note_visibility_enum", new[] { "public", "home", "followers", "specified", "hidden" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "notification_type_enum", new[] { "follow", "mention", "reply", "renote", "quote", "reaction", "pollVote", "pollEnded", "receiveFollowRequest", "followRequestAccepted", "groupInvited", "app" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "page_visibility_enum", new[] { "public", "followers", "specified" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "poll_notevisibility_enum", new[] { "public", "home", "followers", "specified", "hidden" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "relay_status_enum", new[] { "requesting", "accepted", "rejected" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "user_profile_ffvisibility_enum", new[] { "public", "followers", "private" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "user_profile_mutingnotificationtypes_enum", new[] { "follow", "mention", "reply", "renote", "quote", "reaction", "pollVote", "pollEnded", "receiveFollowRequest", "followRequestAccepted", "groupInvited", "app" });
NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "pg_trgm");
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AbuseUserReport", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("AssigneeId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("assigneeId");
b.Property("Comment")
.IsRequired()
.HasMaxLength(2048)
.HasColumnType("character varying(2048)")
.HasColumnName("comment");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the AbuseUserReport.");
b.Property("Forwarded")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("forwarded");
b.Property("ReporterHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("reporterHost")
.HasComment("[Denormalized]");
b.Property("ReporterId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("reporterId");
b.Property("Resolved")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("resolved");
b.Property("TargetUserHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("targetUserHost")
.HasComment("[Denormalized]");
b.Property("TargetUserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("targetUserId");
b.HasKey("Id")
.HasName("PK_87873f5f5cc5c321a1306b2d18c");
b.HasIndex("AssigneeId");
b.HasIndex(new[] { "ReporterId" }, "IDX_04cc96756f89d0b7f9473e8cdf");
b.HasIndex(new[] { "Resolved" }, "IDX_2b15aaf4a0dc5be3499af7ab6a");
b.HasIndex(new[] { "TargetUserHost" }, "IDX_4ebbf7f93cdc10e8d1ef2fc6cd");
b.HasIndex(new[] { "TargetUserId" }, "IDX_a9021cc2e1feb5f72d3db6e9f5");
b.HasIndex(new[] { "CreatedAt" }, "IDX_db2098070b2b5a523c58181f74");
b.HasIndex(new[] { "ReporterHost" }, "IDX_f8d8b93740ad12c4ce8213a199");
b.ToTable("abuse_user_report");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AccessToken", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("AppId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("appId");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the AccessToken.");
b.Property("Description")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("description");
b.Property("Fetched")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("fetched");
b.Property("Hash")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("hash");
b.Property("IconUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("iconUrl");
b.Property("LastUsedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("lastUsedAt");
b.Property("Name")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name");
b.Property>("Permission")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(64)[]")
.HasColumnName("permission")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("Session")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("session");
b.Property("Token")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("token");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.HasKey("Id")
.HasName("PK_f20f028607b2603deabd8182d12");
b.HasIndex("AppId");
b.HasIndex(new[] { "Hash" }, "IDX_64c327441248bae40f7d92f34f");
b.HasIndex(new[] { "Token" }, "IDX_70ba8f6af34bc924fc9e12adb8");
b.HasIndex(new[] { "UserId" }, "IDX_9949557d0e1b2c19e5344c171e");
b.HasIndex(new[] { "Session" }, "IDX_bf3a053c07d9fb5d87317c56ee");
b.ToTable("access_token");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Announcement", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Announcement.");
b.Property("ImageUrl")
.HasMaxLength(1024)
.HasColumnType("character varying(1024)")
.HasColumnName("imageUrl");
b.Property("IsGoodNews")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isGoodNews");
b.Property("ShowPopup")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("showPopup");
b.Property("Text")
.IsRequired()
.HasMaxLength(8192)
.HasColumnType("character varying(8192)")
.HasColumnName("text");
b.Property("Title")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("title");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("updatedAt")
.HasComment("The updated date of the Announcement.");
b.HasKey("Id")
.HasName("PK_e0ef0550174fd1099a308fd18a0");
b.HasIndex(new[] { "CreatedAt" }, "IDX_118ec703e596086fc4515acb39");
b.ToTable("announcement");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AnnouncementRead", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("AnnouncementId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("announcementId");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the AnnouncementRead.");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.HasKey("Id")
.HasName("PK_4b90ad1f42681d97b2683890c5e");
b.HasIndex(new[] { "AnnouncementId" }, "IDX_603a7b1e7aa0533c6c88e9bfaf");
b.HasIndex(new[] { "UserId" }, "IDX_8288151386172b8109f7239ab2");
b.HasIndex(new[] { "UserId", "AnnouncementId" }, "IDX_924fa71815cfa3941d003702a0")
.IsUnique();
b.ToTable("announcement_read");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Antenna", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CaseSensitive")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("caseSensitive");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Antenna.");
b.Property("ExcludeKeywords")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("excludeKeywords")
.HasDefaultValueSql("'[]'::jsonb");
b.Property("Expression")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)")
.HasColumnName("expression");
b.Property("Instances")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("instances")
.HasDefaultValueSql("'[]'::jsonb");
b.Property("Keywords")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("keywords")
.HasDefaultValueSql("'[]'::jsonb");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name")
.HasComment("The name of the Antenna.");
b.Property("Notify")
.HasColumnType("boolean")
.HasColumnName("notify");
b.Property("Source")
.HasColumnType("antenna_src_enum")
.HasColumnName("src");
b.Property("UserGroupMemberId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("UserGroupMemberId");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.Property("UserListId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userListId");
b.Property>("Users")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(1024)[]")
.HasColumnName("users")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("WithFile")
.HasColumnType("boolean")
.HasColumnName("withFile");
b.Property("WithReplies")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("withReplies");
b.HasKey("Id")
.HasName("PK_c170b99775e1dccca947c9f2d5f");
b.HasIndex("UserGroupMemberId");
b.HasIndex("UserListId");
b.HasIndex(new[] { "UserId" }, "IDX_6446c571a0e8d0f05f01c78909");
b.ToTable("antenna");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.App", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CallbackUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("callbackUrl")
.HasComment("The callbackUrl of the App.");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the App.");
b.Property("Description")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("description")
.HasComment("The description of the App.");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name")
.HasComment("The name of the App.");
b.Property>("Permission")
.IsRequired()
.HasColumnType("character varying(64)[]")
.HasColumnName("permission")
.HasComment("The permission of the App.");
b.Property("Secret")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("secret")
.HasComment("The secret key of the App.");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.HasKey("Id")
.HasName("PK_9478629fc093d229df09e560aea");
b.HasIndex(new[] { "CreatedAt" }, "IDX_048a757923ed8b157e9895da53");
b.HasIndex(new[] { "UserId" }, "IDX_3f5b0899ef90527a3462d7c2cb");
b.HasIndex(new[] { "Secret" }, "IDX_f49922d511d666848f250663c4");
b.ToTable("app");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AttestationChallenge", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.Property("Challenge")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("challenge")
.HasComment("Hex-encoded sha256 hash of the challenge.");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The date challenge was created for expiry purposes.");
b.Property("RegistrationChallenge")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("registrationChallenge")
.HasComment("Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.");
b.HasKey("Id", "UserId")
.HasName("PK_d0ba6786e093f1bcb497572a6b5");
b.HasIndex(new[] { "Challenge" }, "IDX_47efb914aed1f72dd39a306c7b");
b.HasIndex(new[] { "UserId" }, "IDX_f1a461a618fa1755692d0e0d59");
b.ToTable("attestation_challenge");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AuthSession", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("AppId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("appId");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the AuthSession.");
b.Property("Token")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("token");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.HasKey("Id")
.HasName("PK_19354ed146424a728c1112a8cbf");
b.HasIndex("AppId");
b.HasIndex("UserId");
b.HasIndex(new[] { "Token" }, "IDX_62cb09e1129f6ec024ef66e183");
b.ToTable("auth_session");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Blocking", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("BlockeeId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("blockeeId")
.HasComment("The blockee user ID.");
b.Property("BlockerId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("blockerId")
.HasComment("The blocker user ID.");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Blocking.");
b.HasKey("Id")
.HasName("PK_e5d9a541cc1965ee7e048ea09dd");
b.HasIndex(new[] { "BlockerId" }, "IDX_0627125f1a8a42c9a1929edb55");
b.HasIndex(new[] { "BlockeeId" }, "IDX_2cd4a2743a99671308f5417759");
b.HasIndex(new[] { "BlockerId", "BlockeeId" }, "IDX_98a1bc5cb30dfd159de056549f")
.IsUnique();
b.HasIndex(new[] { "CreatedAt" }, "IDX_b9a354f7941c1e779f3b33aea6");
b.ToTable("blocking");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Channel", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("BannerId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("bannerId")
.HasComment("The ID of banner Channel.");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Channel.");
b.Property("Description")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)")
.HasColumnName("description")
.HasComment("The description of the Channel.");
b.Property("LastNotedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("lastNotedAt");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name")
.HasComment("The name of the Channel.");
b.Property("NotesCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("notesCount")
.HasComment("The count of notes.");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.Property("UsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("usersCount")
.HasComment("The count of users.");
b.HasKey("Id")
.HasName("PK_590f33ee6ee7d76437acf362e39");
b.HasIndex("BannerId");
b.HasIndex(new[] { "UsersCount" }, "IDX_094b86cd36bb805d1aa1e8cc9a");
b.HasIndex(new[] { "NotesCount" }, "IDX_0f58c11241e649d2a638a8de94");
b.HasIndex(new[] { "LastNotedAt" }, "IDX_29ef80c6f13bcea998447fce43");
b.HasIndex(new[] { "CreatedAt" }, "IDX_71cb7b435b7c0d4843317e7e16");
b.HasIndex(new[] { "UserId" }, "IDX_823bae55bd81b3be6e05cff438");
b.ToTable("channel");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.ChannelFollowing", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the ChannelFollowing.");
b.Property("FolloweeId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followeeId")
.HasComment("The followee channel ID.");
b.Property("FollowerId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followerId")
.HasComment("The follower user ID.");
b.HasKey("Id")
.HasName("PK_8b104be7f7415113f2a02cd5bdd");
b.HasIndex(new[] { "FolloweeId" }, "IDX_0e43068c3f92cab197c3d3cd86");
b.HasIndex(new[] { "CreatedAt" }, "IDX_11e71f2511589dcc8a4d3214f9");
b.HasIndex(new[] { "FollowerId", "FolloweeId" }, "IDX_2e230dd45a10e671d781d99f3e")
.IsUnique();
b.HasIndex(new[] { "FollowerId" }, "IDX_6d8084ec9496e7334a4602707e");
b.ToTable("channel_following");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.ChannelNotePin", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("ChannelId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("channelId");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the ChannelNotePin.");
b.Property("NoteId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("noteId");
b.HasKey("Id")
.HasName("PK_44f7474496bcf2e4b741681146d");
b.HasIndex("NoteId");
b.HasIndex(new[] { "ChannelId" }, "IDX_8125f950afd3093acb10d2db8a");
b.HasIndex(new[] { "ChannelId", "NoteId" }, "IDX_f36fed37d6d4cdcc68c803cd9c")
.IsUnique();
b.ToTable("channel_note_pin");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Clip", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Clip.");
b.Property("Description")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)")
.HasColumnName("description")
.HasComment("The description of the Clip.");
b.Property("IsPublic")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isPublic");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name")
.HasComment("The name of the Clip.");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.HasKey("Id")
.HasName("PK_f0685dac8d4dd056d7255670b75");
b.HasIndex(new[] { "UserId" }, "IDX_2b5ec6c574d6802c94c80313fb");
b.ToTable("clip");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.ClipNote", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("ClipId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("clipId")
.HasComment("The clip ID.");
b.Property("NoteId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("noteId")
.HasComment("The note ID.");
b.HasKey("Id")
.HasName("PK_e94cda2f40a99b57e032a1a738b");
b.HasIndex(new[] { "NoteId", "ClipId" }, "IDX_6fc0ec357d55a18646262fdfff")
.IsUnique();
b.HasIndex(new[] { "NoteId" }, "IDX_a012eaf5c87c65da1deb5fdbfa");
b.HasIndex(new[] { "ClipId" }, "IDX_ebe99317bbbe9968a0c6f579ad");
b.ToTable("clip_note");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.DriveFile", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("AccessKey")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("accessKey");
b.Property("Blurhash")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("blurhash")
.HasComment("The BlurHash string.");
b.Property("Comment")
.HasMaxLength(8192)
.HasColumnType("character varying(8192)")
.HasColumnName("comment")
.HasComment("The comment of the DriveFile.");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the DriveFile.");
b.Property("FolderId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("folderId")
.HasComment("The parent folder ID. If null, it means the DriveFile is located in root.");
b.Property("IsLink")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isLink")
.HasComment("Whether the DriveFile is direct link to remote server.");
b.Property("IsSensitive")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isSensitive")
.HasComment("Whether the DriveFile is NSFW.");
b.Property("Md5")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("md5")
.HasComment("The MD5 hash of the DriveFile.");
b.Property("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("name")
.HasComment("The file name of the DriveFile.");
b.Property("Properties")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("properties")
.HasDefaultValueSql("'{}'::jsonb")
.HasComment("The any properties of the DriveFile. For example, it includes image width/height.");
b.Property("RequestHeaders")
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("requestHeaders")
.HasDefaultValueSql("'{}'::jsonb");
b.Property("RequestIp")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("requestIp");
b.Property("Size")
.HasColumnType("integer")
.HasColumnName("size")
.HasComment("The file size (bytes) of the DriveFile.");
b.Property("Src")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("src");
b.Property("StoredInternal")
.HasColumnType("boolean")
.HasColumnName("storedInternal");
b.Property("ThumbnailAccessKey")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("thumbnailAccessKey");
b.Property("ThumbnailUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("thumbnailUrl")
.HasComment("The URL of the thumbnail of the DriveFile.");
b.Property("Type")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("type")
.HasComment("The content type (MIME) of the DriveFile.");
b.Property("Uri")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("uri")
.HasComment("The URI of the DriveFile. it will be null when the DriveFile is local.");
b.Property("Url")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("url")
.HasComment("The URL of the DriveFile.");
b.Property("UserHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("userHost")
.HasComment("The host of owner. It will be null if the user in local.");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.Property("WebpublicAccessKey")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("webpublicAccessKey");
b.Property("WebpublicType")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("webpublicType");
b.Property("WebpublicUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("webpublicUrl")
.HasComment("The URL of the webpublic of the DriveFile.");
b.HasKey("Id")
.HasName("PK_43ddaaaf18c9e68029b7cbb032e");
b.HasIndex(new[] { "IsLink" }, "IDX_315c779174fe8247ab324f036e");
b.HasIndex(new[] { "Md5" }, "IDX_37bb9a1b4585f8a3beb24c62d6");
b.HasIndex(new[] { "UserId", "FolderId", "Id" }, "IDX_55720b33a61a7c806a8215b825");
b.HasIndex(new[] { "UserId" }, "IDX_860fa6f6c7df5bb887249fba22");
b.HasIndex(new[] { "UserHost" }, "IDX_92779627994ac79277f070c91e");
b.HasIndex(new[] { "Type" }, "IDX_a40b8df8c989d7db937ea27cf6");
b.HasIndex(new[] { "IsSensitive" }, "IDX_a7eba67f8b3fa27271e85d2e26");
b.HasIndex(new[] { "FolderId" }, "IDX_bb90d1956dafc4068c28aa7560");
b.HasIndex(new[] { "WebpublicAccessKey" }, "IDX_c55b2b7c284d9fef98026fc88e")
.IsUnique();
b.HasIndex(new[] { "CreatedAt" }, "IDX_c8dfad3b72196dd1d6b5db168a");
b.HasIndex(new[] { "AccessKey" }, "IDX_d85a184c2540d2deba33daf642")
.IsUnique();
b.HasIndex(new[] { "Uri" }, "IDX_e5848eac4940934e23dbc17581");
b.HasIndex(new[] { "ThumbnailAccessKey" }, "IDX_e74022ce9a074b3866f70e0d27")
.IsUnique();
b.ToTable("drive_file");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.DriveFolder", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the DriveFolder.");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name")
.HasComment("The name of the DriveFolder.");
b.Property("ParentId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("parentId")
.HasComment("The parent folder ID. If null, it means the DriveFolder is located in root.");
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The owner ID.");
b.HasKey("Id")
.HasName("PK_7a0c089191f5ebdc214e0af808a");
b.HasIndex(new[] { "ParentId" }, "IDX_00ceffb0cdc238b3233294f08f");
b.HasIndex(new[] { "CreatedAt" }, "IDX_02878d441ceae15ce060b73daf");
b.HasIndex(new[] { "UserId" }, "IDX_f4fc06e49c0171c85f1c48060d");
b.ToTable("drive_folder");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Emoji", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property>("Aliases")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(128)[]")
.HasColumnName("aliases")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("Category")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("category");
b.Property("Height")
.HasColumnType("integer")
.HasColumnName("height")
.HasComment("Image height");
b.Property("Host")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("host");
b.Property("License")
.HasMaxLength(1024)
.HasColumnType("character varying(1024)")
.HasColumnName("license");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name");
b.Property("OriginalUrl")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("originalUrl");
b.Property("PublicUrl")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("publicUrl")
.HasDefaultValueSql("''::character varying");
b.Property("Type")
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("type");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("updatedAt");
b.Property("Uri")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("uri");
b.Property("Width")
.HasColumnType("integer")
.HasColumnName("width")
.HasComment("Image width");
b.HasKey("Id")
.HasName("PK_df74ce05e24999ee01ea0bc50a3");
b.HasIndex(new[] { "Name", "Host" }, "IDX_4f4d35e1256c84ae3d1f0eab10")
.IsUnique();
b.HasIndex(new[] { "Host" }, "IDX_5900e907bb46516ddf2871327c");
b.HasIndex(new[] { "Name" }, "IDX_b37dafc86e9af007e3295c2781");
b.ToTable("emoji");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.FollowRequest", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the FollowRequest.");
b.Property("FolloweeHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeHost")
.HasComment("[Denormalized]");
b.Property("FolloweeId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followeeId")
.HasComment("The followee user ID.");
b.Property("FolloweeInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeInbox")
.HasComment("[Denormalized]");
b.Property("FolloweeSharedInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeSharedInbox")
.HasComment("[Denormalized]");
b.Property("FollowerHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerHost")
.HasComment("[Denormalized]");
b.Property("FollowerId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followerId")
.HasComment("The follower user ID.");
b.Property("FollowerInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerInbox")
.HasComment("[Denormalized]");
b.Property("FollowerSharedInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerSharedInbox")
.HasComment("[Denormalized]");
b.Property("RequestId")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("requestId")
.HasComment("id of Follow Activity.");
b.HasKey("Id")
.HasName("PK_53a9aa3725f7a3deb150b39dbfc");
b.HasIndex(new[] { "FolloweeId" }, "IDX_12c01c0d1a79f77d9f6c15fadd");
b.HasIndex(new[] { "FollowerId" }, "IDX_a7fd92dd6dc519e6fb435dd108");
b.HasIndex(new[] { "FollowerId", "FolloweeId" }, "IDX_d54a512b822fac7ed52800f6b4")
.IsUnique();
b.ToTable("follow_request");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Following", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the Following.");
b.Property("FolloweeHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeHost")
.HasComment("[Denormalized]");
b.Property("FolloweeId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followeeId")
.HasComment("The followee user ID.");
b.Property("FolloweeInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeInbox")
.HasComment("[Denormalized]");
b.Property("FolloweeSharedInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followeeSharedInbox")
.HasComment("[Denormalized]");
b.Property("FollowerHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerHost")
.HasComment("[Denormalized]");
b.Property("FollowerId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("followerId")
.HasComment("The follower user ID.");
b.Property("FollowerInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerInbox")
.HasComment("[Denormalized]");
b.Property("FollowerSharedInbox")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("followerSharedInbox")
.HasComment("[Denormalized]");
b.HasKey("Id")
.HasName("PK_c76c6e044bdf76ecf8bfb82a645");
b.HasIndex(new[] { "FolloweeId" }, "IDX_24e0042143a18157b234df186c");
b.HasIndex(new[] { "FollowerId", "FolloweeId" }, "IDX_307be5f1d1252e0388662acb96")
.IsUnique();
b.HasIndex(new[] { "FollowerHost" }, "IDX_4ccd2239268ebbd1b35e318754");
b.HasIndex(new[] { "CreatedAt" }, "IDX_582f8fab771a9040a12961f3e7");
b.HasIndex(new[] { "FollowerId" }, "IDX_6516c5a6f3c015b4eed39978be");
b.HasIndex(new[] { "FolloweeHost" }, "IDX_fcdafee716dfe9c3b5fde90f30");
b.ToTable("following");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.GalleryLike", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt");
b.Property("PostId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("postId");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.HasKey("Id")
.HasName("PK_853ab02be39b8de45cd720cc15f");
b.HasIndex("PostId");
b.HasIndex(new[] { "UserId" }, "IDX_8fd5215095473061855ceb948c");
b.HasIndex(new[] { "UserId", "PostId" }, "IDX_df1b5f4099e99fb0bc5eae53b6")
.IsUnique();
b.ToTable("gallery_like");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.GalleryPost", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the GalleryPost.");
b.Property("Description")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)")
.HasColumnName("description");
b.Property>("FileIds")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(32)[]")
.HasColumnName("fileIds")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("IsSensitive")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isSensitive")
.HasComment("Whether the post is sensitive.");
b.Property("LikedCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("likedCount");
b.Property>("Tags")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(128)[]")
.HasColumnName("tags")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("Title")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("title");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("updatedAt")
.HasComment("The updated date of the GalleryPost.");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The ID of author.");
b.HasKey("Id")
.HasName("PK_8e90d7b6015f2c4518881b14753");
b.HasIndex(new[] { "Tags" }, "IDX_05cca34b985d1b8edc1d1e28df");
b.HasIndex(new[] { "LikedCount" }, "IDX_1a165c68a49d08f11caffbd206");
b.HasIndex(new[] { "FileIds" }, "IDX_3ca50563facd913c425e7a89ee");
b.HasIndex(new[] { "CreatedAt" }, "IDX_8f1a239bd077c8864a20c62c2c");
b.HasIndex(new[] { "UserId" }, "IDX_985b836dddd8615e432d7043dd");
b.HasIndex(new[] { "IsSensitive" }, "IDX_f2d744d9a14d0dfb8b96cb7fc5");
b.HasIndex(new[] { "UpdatedAt" }, "IDX_f631d37835adb04792e361807c");
b.ToTable("gallery_post");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Hashtag", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property>("AttachedLocalUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("attachedLocalUserIds");
b.Property("AttachedLocalUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("attachedLocalUsersCount");
b.Property>("AttachedRemoteUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("attachedRemoteUserIds");
b.Property("AttachedRemoteUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("attachedRemoteUsersCount");
b.Property>("AttachedUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("attachedUserIds");
b.Property("AttachedUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("attachedUsersCount");
b.Property>("MentionedLocalUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("mentionedLocalUserIds");
b.Property("MentionedLocalUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("mentionedLocalUsersCount");
b.Property>("MentionedRemoteUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("mentionedRemoteUserIds");
b.Property("MentionedRemoteUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("mentionedRemoteUsersCount");
b.Property>("MentionedUserIds")
.IsRequired()
.HasColumnType("character varying(32)[]")
.HasColumnName("mentionedUserIds");
b.Property("MentionedUsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("mentionedUsersCount");
b.Property("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name");
b.HasKey("Id")
.HasName("PK_cb36eb8af8412bfa978f1165d78");
b.HasIndex(new[] { "AttachedRemoteUsersCount" }, "IDX_0b03cbcd7e6a7ce068efa8ecc2");
b.HasIndex(new[] { "AttachedLocalUsersCount" }, "IDX_0c44bf4f680964145f2a68a341");
b.HasIndex(new[] { "MentionedLocalUsersCount" }, "IDX_0e206cec573f1edff4a3062923");
b.HasIndex(new[] { "MentionedUsersCount" }, "IDX_2710a55f826ee236ea1a62698f");
b.HasIndex(new[] { "Name" }, "IDX_347fec870eafea7b26c8a73bac")
.IsUnique();
b.HasIndex(new[] { "MentionedRemoteUsersCount" }, "IDX_4c02d38a976c3ae132228c6fce");
b.HasIndex(new[] { "AttachedUsersCount" }, "IDX_d57f9030cd3af7f63ffb1c267c");
b.ToTable("hashtag");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.HtmlNoteCacheEntry", b =>
{
b.Property("NoteId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("noteId");
b.Property("Content")
.HasColumnType("text")
.HasColumnName("content");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("updatedAt");
b.HasKey("NoteId")
.HasName("PK_6ef86ec901b2017cbe82d3a8286");
b.ToTable("html_note_cache_entry");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.HtmlUserCacheEntry", b =>
{
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.Property("Bio")
.HasColumnType("text")
.HasColumnName("bio");
b.Property("Fields")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasColumnName("fields")
.HasDefaultValueSql("'[]'::jsonb");
b.Property("UpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("updatedAt");
b.HasKey("UserId")
.HasName("PK_920b9474e3c9cae3f3c37c057e1");
b.ToTable("html_user_cache_entry");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Instance", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CaughtAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("caughtAt")
.HasComment("The caught date of the Instance.");
b.Property("Description")
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("description");
b.Property("FaviconUrl")
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("faviconUrl");
b.Property("FollowersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("followersCount");
b.Property("FollowingCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("followingCount");
b.Property("Host")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("host")
.HasComment("The host of the Instance.");
b.Property("IconUrl")
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("iconUrl");
b.Property("InfoUpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("infoUpdatedAt");
b.Property("IsNotResponding")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isNotResponding");
b.Property("IsSuspended")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isSuspended");
b.Property("LastCommunicatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("lastCommunicatedAt");
b.Property("LatestRequestReceivedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("latestRequestReceivedAt");
b.Property("LatestRequestSentAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("latestRequestSentAt");
b.Property("LatestStatus")
.HasColumnType("integer")
.HasColumnName("latestStatus");
b.Property("MaintainerEmail")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("maintainerEmail");
b.Property("MaintainerName")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("maintainerName");
b.Property("Name")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("name");
b.Property("NotesCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("notesCount")
.HasComment("The count of the notes of the Instance.");
b.Property("OpenRegistrations")
.HasColumnType("boolean")
.HasColumnName("openRegistrations");
b.Property("SoftwareName")
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("softwareName")
.HasComment("The software of the Instance.");
b.Property("SoftwareVersion")
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("softwareVersion");
b.Property("ThemeColor")
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("themeColor");
b.Property("UsersCount")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("usersCount")
.HasComment("The count of the users of the Instance.");
b.HasKey("Id")
.HasName("PK_eaf60e4a0c399c9935413e06474");
b.HasIndex(new[] { "CaughtAt" }, "IDX_2cd3b2a6b4cf0b910b260afe08");
b.HasIndex(new[] { "IsSuspended" }, "IDX_34500da2e38ac393f7bb6b299c");
b.HasIndex(new[] { "Host" }, "IDX_8d5afc98982185799b160e10eb")
.IsUnique();
b.ToTable("instance");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.MessagingMessage", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt")
.HasComment("The created date of the MessagingMessage.");
b.Property("FileId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("fileId");
b.Property("GroupId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("groupId")
.HasComment("The recipient group ID.");
b.Property("IsRead")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("isRead");
b.Property>("Reads")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(32)[]")
.HasColumnName("reads")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("RecipientId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("recipientId")
.HasComment("The recipient user ID.");
b.Property("Text")
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("text");
b.Property("Uri")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("uri");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId")
.HasComment("The sender user ID.");
b.HasKey("Id")
.HasName("PK_db398fd79dc95d0eb8c30456eaa");
b.HasIndex("FileId");
b.HasIndex(new[] { "GroupId" }, "IDX_2c4be03b446884f9e9c502135b");
b.HasIndex(new[] { "UserId" }, "IDX_5377c307783fce2b6d352e1203");
b.HasIndex(new[] { "RecipientId" }, "IDX_cac14a4e3944454a5ce7daa514");
b.HasIndex(new[] { "CreatedAt" }, "IDX_e21cd3646e52ef9c94aaf17c2e");
b.ToTable("messaging_message");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Meta", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property>("AllowedHosts")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("allowedHosts")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("AutofollowedAccount")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("autofollowedAccount");
b.Property("BackgroundImageUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("backgroundImageUrl");
b.Property("BannerUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("bannerUrl");
b.Property>("BlockedHosts")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("blockedHosts")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("CacheRemoteFiles")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("cacheRemoteFiles");
b.Property>("CustomMotd")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("customMOTD")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property>("CustomSplashIcons")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("customSplashIcons")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("DeeplAuthKey")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("deeplAuthKey");
b.Property("DeeplIsPro")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("deeplIsPro");
b.Property("DefaultDarkTheme")
.HasMaxLength(8192)
.HasColumnType("character varying(8192)")
.HasColumnName("defaultDarkTheme");
b.Property("DefaultLightTheme")
.HasMaxLength(8192)
.HasColumnType("character varying(8192)")
.HasColumnName("defaultLightTheme");
b.Property("DefaultReaction")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("defaultReaction")
.HasDefaultValueSql("'⭐'::character varying");
b.Property("Description")
.HasMaxLength(1024)
.HasColumnType("character varying(1024)")
.HasColumnName("description");
b.Property("DisableGlobalTimeline")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("disableGlobalTimeline");
b.Property("DisableLocalTimeline")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("disableLocalTimeline");
b.Property("DisableRecommendedTimeline")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(true)
.HasColumnName("disableRecommendedTimeline");
b.Property("DisableRegistration")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("disableRegistration");
b.Property("DiscordClientId")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("discordClientId");
b.Property("DiscordClientSecret")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("discordClientSecret");
b.Property