Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
        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
        }