//
using System;
using System.Collections.Generic;
using Iceshrimp.Backend.Controllers.Mastodon.Schemas.Entities;
using Iceshrimp.Backend.Core.Database;
using Iceshrimp.Backend.Core.Database.Tables;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Iceshrimp.Backend.Core.Database.Migrations
{
[DbContext(typeof(DatabaseContext))]
partial class DatabaseContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.1")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "antenna_src_enum", new[] { "home", "all", "users", "list", "group", "instances" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "marker_type_enum", new[] { "home", "notifications" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "note_visibility_enum", new[] { "public", "home", "followers", "specified" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "notification_type_enum", new[] { "follow", "mention", "reply", "renote", "quote", "like", "reaction", "pollVote", "pollEnded", "receiveFollowRequest", "followRequestAccepted", "groupInvited", "app", "edit", "bite" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "page_visibility_enum", new[] { "public", "followers", "specified" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "relay_status_enum", new[] { "requesting", "accepted", "rejected" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "user_profile_ffvisibility_enum", new[] { "public", "followers", "private" });
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");
b.HasIndex("AssigneeId");
b.HasIndex("CreatedAt");
b.HasIndex("ReporterHost");
b.HasIndex("ReporterId");
b.HasIndex("Resolved");
b.HasIndex("TargetUserHost");
b.HasIndex("TargetUserId");
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");
b.HasIndex("AppId");
b.HasIndex("Hash");
b.HasIndex("Session");
b.HasIndex("Token");
b.HasIndex("UserId");
b.ToTable("access_token");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.AllowedInstance", b =>
{
b.Property("Host")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("host");
b.Property("IsImported")
.HasColumnType("boolean")
.HasColumnName("imported");
b.HasKey("Host");
b.ToTable("allowed_instance");
});
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");
b.HasIndex("CreatedAt");
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");
b.HasIndex("AnnouncementId");
b.HasIndex("UserId");
b.HasIndex("UserId", "AnnouncementId")
.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");
b.HasIndex("UserGroupMemberId");
b.HasIndex("UserId");
b.HasIndex("UserListId");
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");
b.HasIndex("CreatedAt");
b.HasIndex("Secret");
b.HasIndex("UserId");
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");
b.HasIndex("Challenge");
b.HasIndex("UserId");
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");
b.HasIndex("AppId");
b.HasIndex("Token");
b.HasIndex("UserId");
b.ToTable("auth_session");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Bite", b =>
{
b.Property("Id")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("createdAt");
b.Property("TargetBiteId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("targetBiteId");
b.Property("TargetNoteId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("targetNoteId");
b.Property("TargetUserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("targetUserId");
b.Property("Uri")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("uri");
b.Property("UserHost")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("userHost");
b.Property("UserId")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.HasKey("Id");
b.HasIndex("TargetBiteId");
b.HasIndex("TargetNoteId");
b.HasIndex("TargetUserId");
b.HasIndex("Uri");
b.HasIndex("UserHost");
b.HasIndex("UserId");
b.ToTable("bite");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.BlockedInstance", b =>
{
b.Property("Host")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("host");
b.Property("IsImported")
.HasColumnType("boolean")
.HasColumnName("imported");
b.Property("Reason")
.HasMaxLength(1024)
.HasColumnType("character varying(1024)")
.HasColumnName("reason");
b.HasKey("Host");
b.ToTable("blocked_instance");
});
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");
b.HasIndex("BlockeeId");
b.HasIndex("BlockerId");
b.HasIndex("CreatedAt");
b.HasIndex("BlockerId", "BlockeeId")
.IsUnique();
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");
b.HasIndex("BannerId");
b.HasIndex("CreatedAt");
b.HasIndex("LastNotedAt");
b.HasIndex("NotesCount");
b.HasIndex("UserId");
b.HasIndex("UsersCount");
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");
b.HasIndex("CreatedAt");
b.HasIndex("FolloweeId");
b.HasIndex("FollowerId");
b.HasIndex("FollowerId", "FolloweeId")
.IsUnique();
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");
b.HasIndex("ChannelId");
b.HasIndex("NoteId");
b.HasIndex("ChannelId", "NoteId")
.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");
b.HasIndex("UserId");
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");
b.HasIndex("ClipId");
b.HasIndex("NoteId");
b.HasIndex("NoteId", "ClipId")
.IsUnique();
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")
.HasColumnType("text")
.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("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("Sha256")
.HasMaxLength(64)
.HasColumnType("character varying(64)")
.HasColumnName("sha256")
.HasComment("The SHA256 hash of the DriveFile.");
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");
b.HasIndex("AccessKey");
b.HasIndex("CreatedAt");
b.HasIndex("FolderId");
b.HasIndex("IsLink");
b.HasIndex("IsSensitive");
b.HasIndex("Sha256");
b.HasIndex("ThumbnailAccessKey");
b.HasIndex("Type");
b.HasIndex("Uri");
b.HasIndex("UserHost");
b.HasIndex("UserId");
b.HasIndex("WebpublicAccessKey");
b.HasIndex("UserId", "FolderId", "Id");
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");
b.HasIndex("CreatedAt");
b.HasIndex("ParentId");
b.HasIndex("UserId");
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");
b.HasIndex("Host");
b.HasIndex("Name");
b.HasIndex("Name", "Host")
.IsUnique();
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");
b.HasIndex("FolloweeId");
b.HasIndex("FollowerId");
b.HasIndex("FollowerId", "FolloweeId")
.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");
b.HasIndex("CreatedAt");
b.HasIndex("FolloweeHost");
b.HasIndex("FolloweeId");
b.HasIndex("FollowerHost");
b.HasIndex("FollowerId");
b.HasIndex("FollowerId", "FolloweeId")
.IsUnique();
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");
b.HasIndex("PostId");
b.HasIndex("UserId");
b.HasIndex("UserId", "PostId")
.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");
b.HasIndex("CreatedAt");
b.HasIndex("FileIds");
b.HasIndex("IsSensitive");
b.HasIndex("LikedCount");
b.HasIndex("Tags");
b.HasIndex("UpdatedAt");
b.HasIndex("UserId");
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");
b.HasIndex("AttachedLocalUsersCount");
b.HasIndex("AttachedRemoteUsersCount");
b.HasIndex("AttachedUsersCount");
b.HasIndex("MentionedLocalUsersCount");
b.HasIndex("MentionedRemoteUsersCount");
b.HasIndex("MentionedUsersCount");
b.HasIndex("Name")
.IsUnique();
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");
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");
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");
b.HasIndex("CaughtAt");
b.HasIndex("Host")
.IsUnique();
b.HasIndex("IsSuspended");
b.ToTable("instance");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Marker", b =>
{
b.Property("UserId")
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("userId");
b.Property("Type")
.HasMaxLength(32)
.HasColumnType("marker_type_enum")
.HasColumnName("type");
b.Property("LastUpdatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("lastUpdated");
b.Property("Position")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)")
.HasColumnName("position");
b.Property("Version")
.IsConcurrencyToken()
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("version");
b.HasKey("UserId", "Type");
b.HasIndex("UserId");
b.HasIndex("UserId", "Type")
.IsUnique();
b.ToTable("marker");
});
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");
b.HasIndex("CreatedAt");
b.HasIndex("FileId");
b.HasIndex("GroupId");
b.HasIndex("RecipientId");
b.HasIndex("UserId");
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