//
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.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", "9.0.1")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "antenna_src_enum", new[] { "home", "all", "users", "list", "group", "instances" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "filter_action_enum", new[] { "warn", "hide" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "filter_context_enum", new[] { "home", "lists", "threads", "notifications", "accounts", "public" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "job_status", new[] { "queued", "delayed", "running", "completed", "failed" });
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, "push_subscription_policy_enum", new[] { "all", "followed", "follower", "none" });
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.AllowedInstance", b =>
{
b.Property("Host")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("host");
b.Property("IsImported")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.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.PrimitiveCollection>("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.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.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")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.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.CacheEntry", b =>
{
b.Property("Key")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("key");
b.Property("Expiry")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiry");
b.Property("Ttl")
.HasColumnType("interval")
.HasColumnName("ttl");
b.Property("Value")
.HasColumnType("text")
.HasColumnName("value");
b.HasKey("Key");
b.HasIndex("Expiry");
b.ToTable("cache_store");
});
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")
.IsRequired()
.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("PublicAccessKey")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("webpublicAccessKey");
b.Property("PublicMimeType")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("webpublicType");
b.Property("PublicUrl")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("webpublicUrl")
.HasComment("The URL of the webpublic of the DriveFile.");
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("ThumbnailMimeType")
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("thumbnailType");
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.HasKey("Id");
b.HasIndex("AccessKey");
b.HasIndex("CreatedAt");
b.HasIndex("FolderId");
b.HasIndex("IsLink");
b.HasIndex("IsSensitive");
b.HasIndex("PublicAccessKey");
b.HasIndex("Sha256");
b.HasIndex("ThumbnailAccessKey");
b.HasIndex("Type");
b.HasIndex("Uri");
b.HasIndex("UserHost");
b.HasIndex("UserId");
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.PrimitiveCollection>("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("RawPublicUrl")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.HasColumnName("publicUrl")
.HasDefaultValueSql("''::character varying");
b.Property("Sensitive")
.HasColumnType("boolean")
.HasColumnName("sensitive");
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();
NpgsqlIndexBuilderExtensions.AreNullsDistinct(b.HasIndex("Name", "Host"), false);
b.ToTable("emoji");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Filter", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Action")
.HasColumnType("filter_action_enum")
.HasColumnName("action");
b.PrimitiveCollection>("Contexts")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("filter_context_enum[]")
.HasColumnName("contexts")
.HasDefaultValueSql("'{}'::public.filter_context_enum[]");
b.Property("Expiry")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiry");
b.PrimitiveCollection>("Keywords")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("text[]")
.HasColumnName("keywords")
.HasDefaultValueSql("'{}'::varchar[]");
b.Property("Name")
.IsRequired()
.HasColumnType("text")
.HasColumnName("name");
b.Property("user_id")
.HasColumnType("character varying(32)");
b.HasKey("Id");
b.HasIndex("user_id");
b.ToTable("filter");
});
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("RelationshipId")
.HasColumnType("uuid")
.HasColumnName("relationshipId");
b.Property("RequestId")
.HasMaxLength(512)
.HasColumnType("character varying(512)")
.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.Property("RelationshipId")
.HasColumnType("uuid")
.HasColumnName("relationshipId");
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.PrimitiveCollection>("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.PrimitiveCollection>("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("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasColumnName("name");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("hashtag");
});
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("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("IncomingFollows")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("incomingFollows");
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("OutgoingFollows")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasColumnName("outgoingFollows");
b.Property("SoftwareName")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.HasColumnName("softwareName")
.HasComment("The software of the Instance.");
b.Property("SoftwareVersion")
.HasMaxLength(256)
.HasColumnType("character varying(256)")
.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("IncomingFollows");
b.HasIndex("IsSuspended");
b.HasIndex("OutgoingFollows");
b.ToTable("instance");
});
modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Job", b =>
{
b.Property("Id")
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("Data")
.IsRequired()
.HasColumnType("text")
.HasColumnName("data");
b.Property("DelayedUntil")
.HasColumnType("timestamp with time zone")
.HasColumnName("delayed_until");
b.Property("Exception")
.HasColumnType("text")
.HasColumnName("exception");
b.Property("ExceptionMessage")
.HasColumnType("text")
.HasColumnName("exception_message");
b.Property("ExceptionSource")
.HasColumnType("text")
.HasColumnName("exception_source");
b.Property("FinishedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("finished_at");
b.Property("Mutex")
.HasColumnType("text")
.HasColumnName("mutex");
b.Property("Queue")
.IsRequired()
.HasColumnType("text")
.HasColumnName("queue");
b.Property("QueuedAt")
.ValueGeneratedOnAdd()
.HasColumnType("timestamp with time zone")
.HasColumnName("queued_at")
.HasDefaultValueSql("now()");
b.Property("RetryCount")
.HasColumnType("integer")
.HasColumnName("retry_count");
b.Property("StackTrace")
.HasColumnType("text")
.HasColumnName("stack_trace");
b.Property("StartedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("started_at");
b.Property("Status")
.ValueGeneratedOnAdd()
.HasColumnType("job_status")
.HasDefaultValue(Job.JobStatus.Queued)
.HasColumnName("status");
b.HasKey("Id");
b.HasIndex("DelayedUntil");
b.HasIndex("FinishedAt");
b.HasIndex("Mutex")
.IsUnique();
b.HasIndex("Queue");
b.HasIndex("Status");
b.ToTable("jobs");
});
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.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.PrimitiveCollection>("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.PrimitiveCollection>("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.PrimitiveCollection>("BlockedHosts")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("blockedHosts")
.HasDefaultValueSql("'{}'::character varying[]");
b.Property("CacheRemoteFiles")
.ValueGeneratedOnAdd()
.HasColumnType("boolean")
.HasDefaultValue(false)
.HasColumnName("cacheRemoteFiles");
b.PrimitiveCollection>("CustomMotd")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("character varying(256)[]")
.HasColumnName("customMOTD")
.HasDefaultValueSql("'{}'::character varying[]");
b.PrimitiveCollection>("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