protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "mod_action_type", new[] { "deletion", "update" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "notification_type", new[] { "unknown", "other", "post_added", "post_edited", "post_deleted", "post_mod_edited", "post_mod_deleted", "platform_ban" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.NotificationBase", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <long>("AccountId") .HasColumnType("bigint"); b.Property <DateTime?>("AcknowledgedAt") .HasColumnType("timestamp with time zone"); b.Property <DateTime>("EmittedAt") .HasColumnType("timestamp with time zone"); b.Property <NotificationType>("Type") .HasColumnType("notification_type"); b.HasKey("Id"); b.HasIndex("AccountId"); b.ToTable("Notifications"); b.HasDiscriminator <NotificationType>("Type").IsComplete(false).HasValue(NotificationType.Unknown); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PlatformBan", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <DateTime?>("BannedUntil") .HasColumnType("timestamp with time zone"); b.Property <DateTime>("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("NOW()"); b.Property <long>("ModId") .HasColumnType("bigint"); b.Property <string>("Reason") .IsRequired() .HasColumnType("text"); b.Property <bool>("Reverted") .HasColumnType("boolean"); b.Property <DateTime>("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property <long>("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("ModId"); b.HasIndex("UserId"); b.ToTable("PlatformBans"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Player", b => { b.Property <long>("Id") .HasColumnType("bigint"); b.Property <int>("CourtesyRating") .HasColumnType("integer"); b.Property <DateTime>("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("NOW()"); b.Property <int>("GameKarma") .HasColumnType("integer"); b.Property <DateTime>("LastBattleTime") .HasColumnType("timestamp with time zone"); b.Property <DateTime>("OptOutChanged") .HasColumnType("timestamp with time zone"); b.Property <bool>("OptedOut") .HasColumnType("boolean"); b.Property <int>("PerformanceRating") .HasColumnType("integer"); b.Property <bool>("PostsBanned") .HasColumnType("boolean"); b.Property <int>("SiteKarma") .HasColumnType("integer"); b.Property <int>("TeamplayRating") .HasColumnType("integer"); b.Property <DateTime>("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property <string>("Username") .HasColumnType("text"); b.Property <DateTime>("WgAccountCreatedAt") .HasColumnType("timestamp with time zone"); b.Property <bool>("WgHidden") .HasColumnType("boolean"); b.HasKey("Id"); b.ToTable("Players"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Post", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <long>("AuthorId") .HasColumnType("bigint"); b.Property <string>("Content") .IsRequired() .HasColumnType("text"); b.Property <DateTime>("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("NOW()"); b.Property <int>("Flairs") .HasColumnType("integer"); b.Property <bool>("ModLocked") .HasColumnType("boolean"); b.Property <bool>("NegativeKarmaAble") .HasColumnType("boolean"); b.Property <long>("PlayerId") .HasColumnType("bigint"); b.Property <Guid?>("ReplayId") .HasColumnType("uuid"); b.Property <string>("Title") .IsRequired() .HasColumnType("text"); b.Property <DateTime>("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.HasIndex("AuthorId"); b.HasIndex("PlayerId"); b.HasIndex("ReplayId") .IsUnique(); b.ToTable("Posts"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PostModAction", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <ModActionType>("ActionType") .HasColumnType("mod_action_type"); b.Property <long>("ModId") .HasColumnType("bigint"); b.Property <Guid>("PostId") .HasColumnType("uuid"); b.Property <string>("Reason") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("ModId"); b.HasIndex("PostId"); b.ToTable("PostModActions"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Replays.Replay", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <ReplayArenaInfo>("ArenaInfo") .HasColumnType("jsonb"); b.Property <string>("BlobName") .HasColumnType("text"); b.Property <IEnumerable <ReplayChatMessage> >("ChatMessages") .HasColumnType("jsonb"); b.Property <IEnumerable <ReplayPlayer> >("Players") .HasColumnType("jsonb"); b.Property <Guid>("PostId") .HasColumnType("uuid"); b.HasKey("Id"); b.ToTable("Replays"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PlatformBanNotification", b => { b.HasBaseType("WowsKarma.Api.Data.Models.Notifications.NotificationBase"); b.Property <Guid>("BanId") .HasColumnType("uuid"); b.HasIndex("BanId"); b.HasDiscriminator().HasValue(NotificationType.PlatformBan); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostAddedNotification", b => { b.HasBaseType("WowsKarma.Api.Data.Models.Notifications.NotificationBase"); b.Property <Guid>("PostId") .ValueGeneratedOnUpdateSometimes() .HasColumnType("uuid"); b.HasIndex("PostId"); b.HasDiscriminator().HasValue(NotificationType.PostAdded); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostDeletedNotification", b => { b.HasBaseType("WowsKarma.Api.Data.Models.Notifications.NotificationBase"); b.Property <Guid>("PostId") .ValueGeneratedOnUpdateSometimes() .HasColumnType("uuid"); b.HasIndex("PostId"); b.HasDiscriminator().HasValue(NotificationType.PostDeleted); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostEditedNotification", b => { b.HasBaseType("WowsKarma.Api.Data.Models.Notifications.NotificationBase"); b.Property <Guid>("PostId") .ValueGeneratedOnUpdateSometimes() .HasColumnType("uuid"); b.HasIndex("PostId"); b.HasDiscriminator().HasValue(NotificationType.PostEdited); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostModDeletedNotification", b => { b.HasBaseType("WowsKarma.Api.Data.Models.Notifications.NotificationBase"); b.Property <Guid>("ModActionId") .HasColumnType("uuid"); b.HasIndex("ModActionId"); b.HasDiscriminator().HasValue(NotificationType.PostModDeleted); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.NotificationBase", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Account") .WithMany() .HasForeignKey("AccountId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Account"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PlatformBan", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Mod") .WithMany() .HasForeignKey("ModId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("WowsKarma.Api.Data.Models.Player", "User") .WithMany("PlatformBans") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Mod"); b.Navigation("User"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Post", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Author") .WithMany("PostsSent") .HasForeignKey("AuthorId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("WowsKarma.Api.Data.Models.Player", "Player") .WithMany("PostsReceived") .HasForeignKey("PlayerId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("WowsKarma.Api.Data.Models.Replays.Replay", "Replay") .WithOne("Post") .HasForeignKey("WowsKarma.Api.Data.Models.Post", "ReplayId"); b.Navigation("Author"); b.Navigation("Player"); b.Navigation("Replay"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PostModAction", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Mod") .WithMany() .HasForeignKey("ModId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("WowsKarma.Api.Data.Models.Post", "Post") .WithMany() .HasForeignKey("PostId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Mod"); b.Navigation("Post"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PlatformBanNotification", b => { b.HasOne("WowsKarma.Api.Data.Models.PlatformBan", "Ban") .WithMany() .HasForeignKey("BanId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Ban"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostAddedNotification", b => { b.HasOne("WowsKarma.Api.Data.Models.Post", "Post") .WithMany() .HasForeignKey("PostId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Post"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostDeletedNotification", b => { b.HasOne("WowsKarma.Api.Data.Models.Post", "Post") .WithMany() .HasForeignKey("PostId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Post"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostEditedNotification", b => { b.HasOne("WowsKarma.Api.Data.Models.Post", "Post") .WithMany() .HasForeignKey("PostId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Post"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Notifications.PostModDeletedNotification", b => { b.HasOne("WowsKarma.Api.Data.Models.PostModAction", "ModAction") .WithMany() .HasForeignKey("ModActionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ModAction"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Player", b => { b.Navigation("PlatformBans"); b.Navigation("PostsReceived"); b.Navigation("PostsSent"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Replays.Replay", b => { b.Navigation("Post"); }); #pragma warning restore 612, 618 }
protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "bot_auth_claims", new[] { "designated_channel_view", "designated_channel_modify", "custom_prefix_set", "welcome_message_view", "welcome_message_modify", "tag_add", "tag_delete", "assignable_roles_add", "assignable_roles_delete", "delete_message", "emote_add", "claims_view", "claims_modify", "manage_class_add", "moderation_warn", "moderation_ban", "moderation_mute", "moderation_purge", "moderation_infraction_view", "dashboard_view", "dashboard_edit", "guild_settings_view", "guild_settings_edit" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "config_settings", new[] { "allow_embed_links" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "designated_channels", new[] { "message_log", "moderation_log", "user_join_log", "user_leave_log", "starboard", "server_join_log", "bot_dm_log" }); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "infraction_type", new[] { "ban", "mute", "warn" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("ClemBot.Api.Data.Models.Channel", b => { b.Property <decimal>("Id") .ValueGeneratedOnAdd() .HasColumnType("numeric(20,0)"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <bool>("IsThread") .ValueGeneratedOnAddOrUpdate() .HasColumnType("boolean") .HasComputedColumnSql("\"Channels\".\"ParentId\" IS NOT null", true); b.Property <string>("Name") .HasColumnType("text"); b.Property <decimal?>("ParentId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("GuildId"); b.HasIndex("ParentId"); b.ToTable("Channels"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.ClaimsMapping", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <BotAuthClaims>("Claim") .HasColumnType("bot_auth_claims"); b.Property <decimal>("RoleId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("ClaimsMappings"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.CommandInvocation", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("ChannelId") .HasColumnType("numeric(20,0)"); b.Property <string>("CommandName") .HasColumnType("text"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <LocalDateTime>("Time") .HasColumnType("timestamp without time zone"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("ChannelId"); b.HasIndex("GuildId"); b.HasIndex("UserId"); b.ToTable("CommandInvocations"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.CustomPrefix", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <string>("Prefix") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("GuildId"); b.ToTable("CustomPrefixs"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.DesignatedChannelMapping", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("ChannelId") .HasColumnType("numeric(20,0)"); b.Property <DesignatedChannels>("Type") .HasColumnType("designated_channels"); b.HasKey("Id"); b.HasIndex("ChannelId"); b.ToTable("DesignatedChannelMappings"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Guild", b => { b.Property <decimal>("Id") .ValueGeneratedOnAdd() .HasColumnType("numeric(20,0)"); b.Property <string>("Name") .HasColumnType("text"); b.Property <decimal>("OwnerId") .HasColumnType("numeric(20,0)"); b.Property <string>("WelcomeMessage") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Guilds"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.GuildSetting", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <ConfigSettings>("Setting") .HasColumnType("config_settings"); b.Property <string>("Value") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("GuildId"); b.ToTable("GuildSettings"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.GuildUser", b => { b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("GuildId", "UserId"); b.HasIndex("UserId"); b.ToTable("GuildUser"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Infraction", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("AuthorId") .HasColumnType("numeric(20,0)"); b.Property <LocalDateTime?>("Duration") .HasColumnType("timestamp without time zone"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <bool?>("IsActive") .HasColumnType("boolean"); b.Property <string>("Reason") .HasColumnType("text"); b.Property <decimal>("SubjectId") .HasColumnType("numeric(20,0)"); b.Property <LocalDateTime>("Time") .HasColumnType("timestamp without time zone"); b.Property <InfractionType>("Type") .HasColumnType("infraction_type"); b.HasKey("Id"); b.HasIndex("AuthorId"); b.HasIndex("GuildId"); b.HasIndex("SubjectId"); b.ToTable("Infractions"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Message", b => { b.Property <decimal>("Id") .ValueGeneratedOnAdd() .HasColumnType("numeric(20,0)"); b.Property <decimal>("ChannelId") .HasColumnType("numeric(20,0)"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("ChannelId"); b.HasIndex("GuildId"); b.HasIndex("UserId"); b.ToTable("Messages"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.MessageContent", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <string>("Content") .HasColumnType("text"); b.Property <decimal>("MessageId") .HasColumnType("numeric(20,0)"); b.Property <LocalDateTime>("Time") .HasColumnType("timestamp without time zone"); b.HasKey("Id"); b.HasIndex("MessageId"); b.ToTable("MessageContents"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Reminder", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <string>("Link") .HasColumnType("text"); b.Property <decimal>("MessageId") .HasColumnType("numeric(20,0)"); b.Property <DateTime>("Time") .HasColumnType("timestamp with time zone"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("MessageId"); b.HasIndex("UserId"); b.ToTable("Reminders"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Role", b => { b.Property <decimal>("Id") .ValueGeneratedOnAdd() .HasColumnType("numeric(20,0)"); b.Property <bool>("Admin") .HasColumnType("boolean"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <bool?>("IsAssignable") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property <string>("Name") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("GuildId"); b.ToTable("Roles"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.RoleUser", b => { b.Property <decimal>("RoleId") .HasColumnType("numeric(20,0)"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("RoleId", "UserId"); b.HasIndex("UserId"); b.ToTable("RoleUser"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Tag", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <string>("Content") .HasColumnType("text"); b.Property <decimal>("GuildId") .HasColumnType("numeric(20,0)"); b.Property <string>("Name") .HasColumnType("text"); b.Property <LocalDateTime>("Time") .HasColumnType("timestamp without time zone"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("GuildId"); b.HasIndex("UserId"); b.ToTable("Tags"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.TagUse", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id")); b.Property <decimal>("ChannelId") .HasColumnType("numeric(20,0)"); b.Property <int>("TagId") .HasColumnType("integer"); b.Property <DateTime>("Time") .HasColumnType("timestamp with time zone"); b.Property <decimal>("UserId") .HasColumnType("numeric(20,0)"); b.HasKey("Id"); b.HasIndex("ChannelId"); b.HasIndex("TagId"); b.HasIndex("UserId"); b.ToTable("TagUses"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.User", b => { b.Property <decimal>("Id") .ValueGeneratedOnAdd() .HasColumnType("numeric(20,0)"); b.Property <string>("Name") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Users"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Channel", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("Channels") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.Channel", "Parent") .WithMany() .HasForeignKey("ParentId"); b.Navigation("Guild"); b.Navigation("Parent"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.ClaimsMapping", b => { b.HasOne("ClemBot.Api.Data.Models.Role", "Role") .WithMany("Claims") .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Role"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.CommandInvocation", b => { b.HasOne("ClemBot.Api.Data.Models.Channel", "Channel") .WithMany() .HasForeignKey("ChannelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany() .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Channel"); b.Navigation("Guild"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.CustomPrefix", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("CustomPrefixes") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Guild"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.DesignatedChannelMapping", b => { b.HasOne("ClemBot.Api.Data.Models.Channel", "Channel") .WithMany("DesignatedChannels") .HasForeignKey("ChannelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Channel"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.GuildSetting", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("GuildSettings") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Guild"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.GuildUser", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("GuildUsers") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany("GuildUsers") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Guild"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Infraction", b => { b.HasOne("ClemBot.Api.Data.Models.User", "Author") .WithMany() .HasForeignKey("AuthorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("Infractions") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "Subject") .WithMany() .HasForeignKey("SubjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Author"); b.Navigation("Guild"); b.Navigation("Subject"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Message", b => { b.HasOne("ClemBot.Api.Data.Models.Channel", "Channel") .WithMany("Messages") .HasForeignKey("ChannelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("Messages") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany("Messages") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Channel"); b.Navigation("Guild"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.MessageContent", b => { b.HasOne("ClemBot.Api.Data.Models.Message", "Message") .WithMany("Contents") .HasForeignKey("MessageId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Message"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Reminder", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Message") .WithMany("Reminders") .HasForeignKey("MessageId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Message"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Role", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("Roles") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Guild"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.RoleUser", b => { b.HasOne("ClemBot.Api.Data.Models.Role", "Role") .WithMany("RoleUsers") .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany("RoleUsers") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Role"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Tag", b => { b.HasOne("ClemBot.Api.Data.Models.Guild", "Guild") .WithMany("Tags") .HasForeignKey("GuildId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany("Tags") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Guild"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.TagUse", b => { b.HasOne("ClemBot.Api.Data.Models.Channel", "Channel") .WithMany() .HasForeignKey("ChannelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.Tag", "Tag") .WithMany("TagUses") .HasForeignKey("TagId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ClemBot.Api.Data.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Channel"); b.Navigation("Tag"); b.Navigation("User"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Channel", b => { b.Navigation("DesignatedChannels"); b.Navigation("Messages"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Guild", b => { b.Navigation("Channels"); b.Navigation("CustomPrefixes"); b.Navigation("GuildSettings"); b.Navigation("GuildUsers"); b.Navigation("Infractions"); b.Navigation("Messages"); b.Navigation("Reminders"); b.Navigation("Roles"); b.Navigation("Tags"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Message", b => { b.Navigation("Contents"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Role", b => { b.Navigation("Claims"); b.Navigation("RoleUsers"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.Tag", b => { b.Navigation("TagUses"); }); modelBuilder.Entity("ClemBot.Api.Data.Models.User", b => { b.Navigation("GuildUsers"); b.Navigation("Messages"); b.Navigation("RoleUsers"); b.Navigation("Tags"); }); #pragma warning restore 612, 618 }
protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "test_result_format", new[] { "playwright_test", "cucumber_js", "jest" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Minerva.Data.TestResult", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property <decimal>("Duration") .HasColumnType("numeric") .HasColumnName("duration"); b.Property <string>("ErrorMessage") .HasColumnType("jsonb") .HasColumnName("error_message"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <string>("Product") .IsRequired() .HasColumnType("text") .HasColumnName("product"); b.Property <TestResultFormat>("ResultType") .HasColumnType("test_result_format") .HasColumnName("result_type"); b.Property <Instant>("RunAt") .HasColumnType("timestamp with time zone") .HasColumnName("run_at"); b.Property <string>("Status") .IsRequired() .HasColumnType("text") .HasColumnName("status"); b.Property <List <string> >("Tags") .IsRequired() .HasColumnType("text[]") .HasColumnName("tags"); b.Property <string>("Trigger") .IsRequired() .HasColumnType("text") .HasColumnName("trigger"); b.HasKey("Id") .HasName("pk_test_results"); b.ToTable("test_results", (string)null); }); #pragma warning restore 612, 618 }
protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.0-rc.2.21480.5") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "mod_action_type", new[] { "deletion", "update" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("WowsKarma.Api.Data.Models.Player", b => { b.Property <long>("Id") .HasColumnType("bigint"); b.Property <int>("CourtesyRating") .HasColumnType("integer"); b.Property <DateTime>("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("NOW()"); b.Property <int>("GameKarma") .HasColumnType("integer"); b.Property <DateTime>("LastBattleTime") .HasColumnType("timestamp with time zone"); b.Property <DateTime>("OptOutChanged") .HasColumnType("timestamp with time zone"); b.Property <bool>("OptedOut") .HasColumnType("boolean"); b.Property <int>("PerformanceRating") .HasColumnType("integer"); b.Property <bool>("PostsBanned") .HasColumnType("boolean"); b.Property <int>("SiteKarma") .HasColumnType("integer"); b.Property <int>("TeamplayRating") .HasColumnType("integer"); b.Property <DateTime>("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property <string>("Username") .HasColumnType("text"); b.Property <DateTime>("WgAccountCreatedAt") .HasColumnType("timestamp with time zone"); b.Property <bool>("WgHidden") .HasColumnType("boolean"); b.HasKey("Id"); b.ToTable("Players"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Post", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <long>("AuthorId") .HasColumnType("bigint"); b.Property <string>("Content") .IsRequired() .HasColumnType("text"); b.Property <DateTime>("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("NOW()"); b.Property <int>("Flairs") .HasColumnType("integer"); b.Property <bool>("ModLocked") .HasColumnType("boolean"); b.Property <bool>("NegativeKarmaAble") .HasColumnType("boolean"); b.Property <long>("PlayerId") .HasColumnType("bigint"); b.Property <string>("Title") .IsRequired() .HasColumnType("text"); b.Property <DateTime>("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.HasIndex("AuthorId"); b.HasIndex("PlayerId"); b.ToTable("Posts"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PostModAction", b => { b.Property <Guid>("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property <ModActionType>("ActionType") .HasColumnType("mod_action_type"); b.Property <long>("ModId") .HasColumnType("bigint"); b.Property <Guid>("PostId") .HasColumnType("uuid"); b.Property <string>("Reason") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("ModId"); b.HasIndex("PostId"); b.ToTable("PostModActions"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Post", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Author") .WithMany("PostsSent") .HasForeignKey("AuthorId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("WowsKarma.Api.Data.Models.Player", "Player") .WithMany("PostsReceived") .HasForeignKey("PlayerId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Author"); b.Navigation("Player"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.PostModAction", b => { b.HasOne("WowsKarma.Api.Data.Models.Player", "Mod") .WithMany() .HasForeignKey("ModId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("WowsKarma.Api.Data.Models.Post", "Post") .WithMany() .HasForeignKey("PostId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Mod"); b.Navigation("Post"); }); modelBuilder.Entity("WowsKarma.Api.Data.Models.Player", b => { b.Navigation("PostsReceived"); b.Navigation("PostsSent"); }); #pragma warning restore 612, 618 }
protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "aggregate_type", new[] { "filter_list", "language", "license", "maintainer", "software", "syntax", "tag" }); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.HasSequence("EntityFrameworkHiLoSequence-FilterListViewUrl") .StartsAt(3000L) .IncrementsBy(3); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Change", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <JsonDocument>("After") .HasColumnType("jsonb") .HasColumnName("after"); b.Property <AggregateType>("AggregateType") .HasColumnType("aggregate_type") .HasColumnName("aggregate_type"); b.Property <DateTime?>("ApprovedAt") .HasColumnType("timestamp with time zone") .HasColumnName("approved_at"); b.Property <JsonDocument>("Before") .HasColumnType("jsonb") .HasColumnName("before"); b.Property <long?>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b.Property <long?>("LanguageId") .HasColumnType("bigint") .HasColumnName("language_id"); b.Property <long?>("LicenseId") .HasColumnType("bigint") .HasColumnName("license_id"); b.Property <long?>("MaintainerId") .HasColumnType("bigint") .HasColumnName("maintainer_id"); b.Property <string>("Reason") .HasColumnType("text") .HasColumnName("reason"); b.Property <DateTime?>("RejectedAt") .HasColumnType("timestamp with time zone") .HasColumnName("rejected_at"); b.Property <string>("RejectedReason") .HasColumnType("text") .HasColumnName("rejected_reason"); b.Property <long?>("SoftwareId") .HasColumnType("bigint") .HasColumnName("software_id"); b.Property <DateTime>("SubmittedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("submitted_at") .HasDefaultValueSql("CURRENT_TIMESTAMP"); b.Property <long?>("SyntaxId") .HasColumnType("bigint") .HasColumnName("syntax_id"); b.Property <long?>("TagId") .HasColumnType("bigint") .HasColumnName("tag_id"); b.HasKey("Id") .HasName("pk_changes"); b.HasIndex("FilterListId") .HasDatabaseName("ix_changes_filter_list_id"); b.HasIndex("LanguageId") .HasDatabaseName("ix_changes_language_id"); b.HasIndex("LicenseId") .HasDatabaseName("ix_changes_license_id"); b.HasIndex("MaintainerId") .HasDatabaseName("ix_changes_maintainer_id"); b.HasIndex("SoftwareId") .HasDatabaseName("ix_changes_software_id"); b.HasIndex("SyntaxId") .HasDatabaseName("ix_changes_syntax_id"); b.HasIndex("TagId") .HasDatabaseName("ix_changes_tag_id"); b.ToTable("changes", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => { b.Property <long>("DependencyFilterListId") .HasColumnType("bigint") .HasColumnName("dependency_filter_list_id"); b.Property <long>("DependentFilterListId") .HasColumnType("bigint") .HasColumnName("dependent_filter_list_id"); b.HasKey("DependencyFilterListId", "DependentFilterListId") .HasName("pk_dependents"); b.HasIndex("DependentFilterListId") .HasDatabaseName("ix_dependents_dependent_filter_list_id"); b.ToTable("dependents", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <string>("ChatUrl") .HasColumnType("text") .HasColumnName("chat_url"); b.Property <string>("Description") .HasColumnType("text") .HasColumnName("description"); b.Property <string>("DonateUrl") .HasColumnType("text") .HasColumnName("donate_url"); b.Property <string>("EmailAddress") .HasColumnType("text") .HasColumnName("email_address"); b.Property <string>("ForumUrl") .HasColumnType("text") .HasColumnName("forum_url"); b.Property <string>("HomeUrl") .HasColumnType("text") .HasColumnName("home_url"); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("IssuesUrl") .HasColumnType("text") .HasColumnName("issues_url"); b.Property <long>("LicenseId") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasDefaultValue(5L) .HasColumnName("license_id"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <string>("OnionUrl") .HasColumnType("text") .HasColumnName("onion_url"); b.Property <string>("PolicyUrl") .HasColumnType("text") .HasColumnName("policy_url"); b.Property <string>("SubmissionUrl") .HasColumnType("text") .HasColumnName("submission_url"); b.HasKey("Id") .HasName("pk_filter_lists"); b.HasIndex("LicenseId") .HasDatabaseName("ix_filter_lists_license_id"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_filter_lists_name"); b.ToTable("filter_lists", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => { b.Property <long>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b.Property <long>("LanguageId") .HasColumnType("bigint") .HasColumnName("language_id"); b.HasKey("FilterListId", "LanguageId") .HasName("pk_filter_list_languages"); b.HasIndex("LanguageId") .HasDatabaseName("ix_filter_list_languages_language_id"); b.ToTable("filter_list_languages", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => { b.Property <long>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b.Property <long>("MaintainerId") .HasColumnType("bigint") .HasColumnName("maintainer_id"); b.HasKey("FilterListId", "MaintainerId") .HasName("pk_filter_list_maintainers"); b.HasIndex("MaintainerId") .HasDatabaseName("ix_filter_list_maintainers_maintainer_id"); b.ToTable("filter_list_maintainers", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => { b.Property <long>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b.Property <long>("SyntaxId") .HasColumnType("bigint") .HasColumnName("syntax_id"); b.HasKey("FilterListId", "SyntaxId") .HasName("pk_filter_list_syntaxes"); b.HasIndex("SyntaxId") .HasDatabaseName("ix_filter_list_syntaxes_syntax_id"); b.ToTable("filter_list_syntaxes", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => { b.Property <long>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b.Property <long>("TagId") .HasColumnType("bigint") .HasColumnName("tag_id"); b.HasKey("FilterListId", "TagId") .HasName("pk_filter_list_tags"); b.HasIndex("TagId") .HasDatabaseName("ix_filter_list_tags_tag_id"); b.ToTable("filter_list_tags", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => { b.Property <long>("UpstreamFilterListId") .HasColumnType("bigint") .HasColumnName("upstream_filter_list_id"); b.Property <long>("ForkFilterListId") .HasColumnType("bigint") .HasColumnName("fork_filter_list_id"); b.HasKey("UpstreamFilterListId", "ForkFilterListId") .HasName("pk_forks"); b.HasIndex("ForkFilterListId") .HasDatabaseName("ix_forks_fork_filter_list_id"); b.ToTable("forks", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Iso6391") .IsRequired() .HasMaxLength(2) .HasColumnType("character(2)") .HasColumnName("iso6391") .IsFixedLength(); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.HasKey("Id") .HasName("pk_languages"); b.HasIndex("Iso6391") .IsUnique() .HasDatabaseName("ix_languages_iso6391"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_languages_name"); b.ToTable("languages", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <bool>("PermitsCommercialUse") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("permits_commercial_use"); b.Property <bool>("PermitsDistribution") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("permits_distribution"); b.Property <bool>("PermitsModification") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("permits_modification"); b.Property <string>("Url") .HasColumnType("text") .HasColumnName("url"); b.HasKey("Id") .HasName("pk_licenses"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_licenses_name"); b.ToTable("licenses", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <string>("EmailAddress") .HasColumnType("text") .HasColumnName("email_address"); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <string>("TwitterHandle") .HasColumnType("text") .HasColumnName("twitter_handle"); b.Property <string>("Url") .HasColumnType("text") .HasColumnName("url"); b.HasKey("Id") .HasName("pk_maintainers"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_maintainers_name"); b.ToTable("maintainers", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => { b.Property <long>("IncludedInFilterListId") .HasColumnType("bigint") .HasColumnName("included_in_filter_list_id"); b.Property <long>("IncludesFilterListId") .HasColumnType("bigint") .HasColumnName("includes_filter_list_id"); b.HasKey("IncludedInFilterListId", "IncludesFilterListId") .HasName("pk_merges"); b.HasIndex("IncludesFilterListId") .HasDatabaseName("ix_merges_includes_filter_list_id"); b.ToTable("merges", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <string>("Description") .HasColumnType("text") .HasColumnName("description"); b.Property <string>("DownloadUrl") .HasColumnType("text") .HasColumnName("download_url"); b.Property <string>("HomeUrl") .HasColumnType("text") .HasColumnName("home_url"); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <bool>("SupportsAbpUrlScheme") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("supports_abp_url_scheme"); b.HasKey("Id") .HasName("pk_software"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_software_name"); b.ToTable("software", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => { b.Property <long>("SoftwareId") .HasColumnType("bigint") .HasColumnName("software_id"); b.Property <long>("SyntaxId") .HasColumnType("bigint") .HasColumnName("syntax_id"); b.HasKey("SoftwareId", "SyntaxId") .HasName("pk_software_syntaxes"); b.HasIndex("SyntaxId") .HasDatabaseName("ix_software_syntaxes_syntax_id"); b.ToTable("software_syntaxes", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <string>("Description") .HasColumnType("text") .HasColumnName("description"); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.Property <string>("Url") .HasColumnType("text") .HasColumnName("url"); b.HasKey("Id") .HasName("pk_syntaxes"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_syntaxes_name"); b.ToTable("syntaxes", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b => { b.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id")); b.Property <string>("Description") .HasColumnType("text") .HasColumnName("description"); b.Property <bool>("IsApproved") .HasColumnType("boolean") .HasColumnName("is_approved"); b.Property <string>("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.HasKey("Id") .HasName("pk_tags"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_tags_name"); b.ToTable("tags", (string)null); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Change", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", null) .WithMany("Changes") .HasForeignKey("FilterListId") .HasConstraintName("fk_changes_filter_lists_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", null) .WithMany("Changes") .HasForeignKey("LanguageId") .HasConstraintName("fk_changes_languages_language_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", null) .WithMany("Changes") .HasForeignKey("LicenseId") .HasConstraintName("fk_changes_licenses_license_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", null) .WithMany("Changes") .HasForeignKey("MaintainerId") .HasConstraintName("fk_changes_maintainers_maintainer_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", null) .WithMany("Changes") .HasForeignKey("SoftwareId") .HasConstraintName("fk_changes_software_software_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", null) .WithMany("Changes") .HasForeignKey("SyntaxId") .HasConstraintName("fk_changes_syntaxes_syntax_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", null) .WithMany("Changes") .HasForeignKey("TagId") .HasConstraintName("fk_changes_tags_tag_id"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependencyFilterList") .WithMany("DependentFilterLists") .HasForeignKey("DependencyFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_dependents_filter_lists_dependency_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependentFilterList") .WithMany("DependencyFilterLists") .HasForeignKey("DependentFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_dependents_filter_lists_dependent_filter_list_id"); b.Navigation("DependencyFilterList"); b.Navigation("DependentFilterList"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", "License") .WithMany("FilterLists") .HasForeignKey("LicenseId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_filter_lists_licenses_license_id"); b.OwnsMany("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", "ViewUrls", b1 => { b1.Property <long>("FilterListId") .HasColumnType("bigint") .HasColumnName("filter_list_id"); b1.Property <long>("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasColumnName("id"); NpgsqlPropertyBuilderExtensions.UseHiLo(b1.Property <long>("Id"), "EntityFrameworkHiLoSequence-FilterListViewUrl"); b1.Property <short>("Primariness") .ValueGeneratedOnAdd() .HasColumnType("smallint") .HasDefaultValue((short)1) .HasColumnName("primariness"); b1.Property <short>("SegmentNumber") .ValueGeneratedOnAdd() .HasColumnType("smallint") .HasDefaultValue((short)1) .HasColumnName("segment_number"); b1.Property <string>("Url") .IsRequired() .HasColumnType("text") .HasColumnName("url"); b1.HasKey("FilterListId", "Id") .HasName("pk_filter_list_view_urls"); b1.HasIndex("FilterListId", "SegmentNumber", "Primariness") .IsUnique() .HasDatabaseName("ix_filter_list_view_urls_filter_list_id_segment_number_primari"); b1.ToTable("filter_list_view_urls", (string)null); b1.WithOwner("FilterList") .HasForeignKey("FilterListId") .HasConstraintName("fk_filter_list_view_urls_filter_lists_filter_list_id"); b1.Navigation("FilterList"); }); b.Navigation("License"); b.Navigation("ViewUrls"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") .WithMany("FilterListLanguages") .HasForeignKey("FilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_languages_filter_lists_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", "Language") .WithMany("FilterListLanguages") .HasForeignKey("LanguageId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_languages_languages_language_id"); b.Navigation("FilterList"); b.Navigation("Language"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") .WithMany("FilterListMaintainers") .HasForeignKey("FilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_maintainers_filter_lists_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", "Maintainer") .WithMany("FilterListMaintainers") .HasForeignKey("MaintainerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_maintainers_maintainers_maintainer_id"); b.Navigation("FilterList"); b.Navigation("Maintainer"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") .WithMany("FilterListSyntaxes") .HasForeignKey("FilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_syntaxes_filter_lists_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") .WithMany("FilterListSyntaxes") .HasForeignKey("SyntaxId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_syntaxes_syntaxes_syntax_id"); b.Navigation("FilterList"); b.Navigation("Syntax"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") .WithMany("FilterListTags") .HasForeignKey("FilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_tags_filter_lists_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", "Tag") .WithMany("FilterListTags") .HasForeignKey("TagId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filter_list_tags_tags_tag_id"); b.Navigation("FilterList"); b.Navigation("Tag"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "ForkFilterList") .WithMany("UpstreamFilterLists") .HasForeignKey("ForkFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_forks_filter_lists_fork_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "UpstreamFilterList") .WithMany("ForkFilterLists") .HasForeignKey("UpstreamFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_forks_filter_lists_upstream_filter_list_id"); b.Navigation("ForkFilterList"); b.Navigation("UpstreamFilterList"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludedInFilterList") .WithMany("IncludesFilterLists") .HasForeignKey("IncludedInFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_merges_filter_lists_included_in_filter_list_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludesFilterList") .WithMany("IncludedInFilterLists") .HasForeignKey("IncludesFilterListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_merges_filter_lists_includes_filter_list_id"); b.Navigation("IncludedInFilterList"); b.Navigation("IncludesFilterList"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => { b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", "Software") .WithMany("SoftwareSyntaxes") .HasForeignKey("SoftwareId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_software_syntaxes_software_software_id"); b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") .WithMany("SoftwareSyntaxes") .HasForeignKey("SyntaxId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_software_syntaxes_syntaxes_syntax_id"); b.Navigation("Software"); b.Navigation("Syntax"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => { b.Navigation("Changes"); b.Navigation("DependencyFilterLists"); b.Navigation("DependentFilterLists"); b.Navigation("FilterListLanguages"); b.Navigation("FilterListMaintainers"); b.Navigation("FilterListSyntaxes"); b.Navigation("FilterListTags"); b.Navigation("ForkFilterLists"); b.Navigation("IncludedInFilterLists"); b.Navigation("IncludesFilterLists"); b.Navigation("UpstreamFilterLists"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b => { b.Navigation("Changes"); b.Navigation("FilterListLanguages"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b => { b.Navigation("Changes"); b.Navigation("FilterLists"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b => { b.Navigation("Changes"); b.Navigation("FilterListMaintainers"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b => { b.Navigation("Changes"); b.Navigation("SoftwareSyntaxes"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b => { b.Navigation("Changes"); b.Navigation("FilterListSyntaxes"); b.Navigation("SoftwareSyntaxes"); }); modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b => { b.Navigation("Changes"); b.Navigation("FilterListTags"); }); #pragma warning restore 612, 618 }